c# - C# 中的加权随机数生成

标签 c# .net algorithm random

问题

我如何随机生成两种状态之一,“红色”概率为 10%,“绿色”概率为 90%?

背景

绿灯或红灯每 2 秒闪烁一次。

此序列将持续 5 分钟。

闪烁灯的总出现次数应为 300。

最佳答案

Random.NextDouble 返回一个介于 0 和 1 之间的数字,因此以下应该有效:

if (random.NextDouble() < 0.90)
{
    BlinkGreen();
}
else
{
    BlinkRed();
}

关于c# - C# 中的加权随机数生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1522208/

相关文章:

javascript - 如何使用递归过滤所有单个 JSON 数据?

java - 如何创建一个算法来初始化变量?

c# - 8bpp 转换为 24bpp 时图像发生偏移

c# - 如何在 .NET 中访问 div 标签并更改样式属性?

algorithm - 一般情况下的费用是多少?

.net - 处理 CryptoStream 是否会刷新最终 block ?

c# - 具有继承变化的DataContract

c# - 通过命令行构建 Visual Studio 项目

c# - 如何更改图表 x 轴间隔

c# - CaSTLe Windsor WcfFacility 出现奇怪的组件注册错误