迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

C# 随机布尔值

作者:迹忆客 最近更新:2024/01/16 浏览次数:

你是否遇到过必须以编程方式掷硬币的情况?你有没有想过在两个数据库之间随机分配东西?

你试图实现的目标是我们所说的随机布尔值boolean 变量只有两个可能的值,truefalse

当我们随机生成这个布尔值时,我们得到一个随机布尔值。本教程将展示如何使用 C# 创建一个 random boolean

我们还将看到其生成的最快和最理想的方式。


使用 C# 类 Random 中的 Next() 方法

C# 中的 Random 类为我们提供了一个随机库。它提供了一个伪随机生成器,可以根据统计要求生成随机序列。

尽管该类没有像为 bytesintegersdoubles 那样明确地提供 boolean 方法。但它可以有效地使用它来生成它们,因为从程序员的角度来看,falsetrue 只不过是 01

第一种方法是使用 Next() 方法通过将 n 分配为 2 并减少仅构成 01 的容量来生成 [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.01.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(),导致乘法和强制转换的额外开销。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C# 中发出 HTTP POST Web 请求

发布时间:2024/02/04 浏览次数:131 分类:编程语言

在 C# 中,可以使用 3 种主要方法来发出 HTTP POST Web 请求:WebClient 类,HttpWebRequest 类和 HttpClient 类。本教程将讨论在 C# 中发出 HTTP POST Web 请求的方法。使用 C# 中的 WebClient 类发出 HTTP POST Web 请求

在 C# 中调整图像大小

发布时间:2024/02/04 浏览次数:203 分类:编程语言

有两种主要方法可用于在 C# 中调整图像的大小,Bitmap 类构造函数和 graphics.DrawImage()函数。在本教程中,我们将讨论在C#中调整图像大小的方法。我们将带您完成整个过程,从加载原始图像到保

在 C# 中下载图片

发布时间:2024/02/04 浏览次数:138 分类:编程语言

有 3 种主要方法可用于下载 C# 中的图片,WebClient.DownloadFile()函数,Bitmap 类和 Image.FromStream()函数。在 C# 中使用 WebClient 类下载图片 WebClient 类提供了用于向 C# 中的 URL 发送数据和从 URL 接收数据

在 C# 中使用秒表

发布时间:2024/02/04 浏览次数:139 分类:编程语言

我们可以使用 Stopwatch 类来计算 C# 中的经过时间。使用 C# 中的秒表类计算经过时间 Stopwatch 类在 C# 中准确测量经过的时间。

在 C# 中获取可执行路径

发布时间:2024/02/04 浏览次数:200 分类:编程语言

有 3 种主要方法可用于获取 C# 中程序的可执行路径,即 Assembly 类,AppDomain 类和 Path 类。本教程将介绍获取 C# 代码的可执行路径的方法。使用 C# 中的 Assembly 类获取可执行路径

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便