C# 随机布尔值
你是否遇到过必须以编程方式掷硬币的情况?你有没有想过在两个数据库之间随机分配东西?
你试图实现的目标是我们所说的随机布尔值
。boolean
变量只有两个可能的值,true
或 false
。
当我们随机生成这个布尔值时,我们得到一个随机布尔值。本教程将展示如何使用 C# 创建一个 random boolean
。
我们还将看到其生成的最快和最理想的方式。
使用 C# 类 Random
中的 Next()
方法
C# 中的 Random
类为我们提供了一个随机库。它提供了一个伪随机生成器,可以根据统计要求生成随机序列。
尽管该类没有像为 bytes
、integers
和 doubles
那样明确地提供 boolean 方法。但它可以有效地使用它来生成它们,因为从程序员的角度来看,false
和 true
只不过是 0
和 1
。
第一种方法是使用 Next()
方法通过将 n
分配为 2
并减少仅构成 0
和 1
的容量来生成 [0,n)
范围内的随机整数.
// Generate n random booleans using C# class Random
using System;
public class RandomBoolean {
public static void Main() {
int n = 5;
var random = new Random();
for (int i = 0; i < n; i++) {
Console.WriteLine(random.Next(2) == 1);
}
}
}
输出:
False
True
True
False
False
// Note this is random and may not match with your actual output
使用 C# 类 Random
中的 NextDouble()
方法
在前面的示例中,我们看到了如何使用 Next()
生成随机布尔值。在这种方法中,我们将看到如何使用同一类 Random
中的另一种方法 NextDouble()
。
NextDouble()
返回一个介于 0.0
和 1.0
之间的随机双精度值。因此,我们可以在这两个数字之间的任意位置添加分隔符,并根据分隔条件将生成的数字分为真
或假
。
例如,让我们选择双值 0.3
作为分隔符,分隔条件为生成数> = 0.3
。因此,如果数字满足条件,我们得到 true
,否则为 false
。
为了实现足够的随机分布,分隔符的首选值为 0.5
。
// Generate n random booleans using C# class Random
using System;
public class RandomBoolean {
public static void Main() {
int n = 5;
var random = new Random();
for (int i = 0; i < n; i++) {
Console.WriteLine(random.NextDouble() >= 0.5);
}
}
}
输出:
True
False
True
True
False
// Note this is random and may not match with your actual output
帖子中描述的两种方法都相当快。
但是假设我们必须选择最快的。在这种情况下,第二种方法似乎更短。
Next()
方法在内部返回 (int)(this.Sample()*maxValue)
,而 NextDouble()
仅返回 this.Sample()
,导致乘法和强制转换的额外开销。
相关文章
C# 中的 float、Double 和 Decimal
发布时间:2024/01/18 浏览次数:128 分类:编程语言
-
C# 中的浮点,双精度和十进制数据类型之间的差异如下所述。C# 中的浮点数数据类型 浮点数数据类型在 C# 中存储浮点值。
在 C# 中切换布尔变量
发布时间:2024/01/18 浏览次数:86 分类:编程语言
-
本文教我们在 C# 中切换布尔变量的方法。在 C# 中切换布尔变量 切换布尔变量意味着在 true 和 false 之间更改其值。
在 C# 中检查数组是否包含给定值
发布时间:2024/01/18 浏览次数:102 分类:编程语言
-
有两种主要方法可用于获取 C# 中数组内部元素的索引:Array.IndexOf()和 Array.FindIndex()函数。使用 C# 中的 Array.IndexOf() 函数获取数组中元素的索引
在 C# 中获取数组的大小
发布时间:2024/01/18 浏览次数:178 分类:编程语言
-
有两种主要方法可用于获取 C# 中的数组大小,Array.Length 属性和 Array.Rank 属性。使用 C# 中的 Array.Length 属性获取数组的大小
C# 中将数组转换为列表
发布时间:2024/01/18 浏览次数:141 分类:编程语言
-
有两种主要方法可用于将数组转换为 C# 中的列表,Linq 中的 Array.ToList()函数和 List.AddRange()函数。
在 C# 中随机排列数组
发布时间:2024/01/18 浏览次数:127 分类:编程语言
-
可使用两种主要方法来随机播放 C# 中的数组:Random 类和 RNGCryptoServiceProvider 类。在 C# 中使用 Random 类对数组进行混洗 Random 类在 C# 中生成随机数。
在 C# 中声明一个常量数组
发布时间:2024/01/18 浏览次数:118 分类:编程语言
-
我们可以在 C# 中使用 readonly 关键字声明常量数组。在 C# 中使用 readonly 关键字声明一个常量数组
在 C# 中获取 2D 数组的长度
发布时间:2024/01/18 浏览次数:130 分类:编程语言
-
有 2 种主要方法可用于计算 C# 中 2D 数组的宽度和高度,即 Array.GetLength()和 Array.GetUpperBound()函数。