随机数:0或1

时间:2009-09-29 14:52:30

标签: c# random

我是否看得太远,看不到选择一个简单的数字:0或1?

        Random rand = new Random();

        if (rand.NextDouble() == 0)
        {
            lnkEvents.CssClass = "selected";
        }
        else
        {
            lnkNews.CssClass = "selected";
        }

6 个答案:

答案 0 :(得分:72)

Random rand = new Random();

if (rand.Next(0, 2) == 0)
    lnkEvents.CssClass = "selected";
else
    lnkNews.CssClass = "selected";

Random.Next选择下限(包括)和上限(不包括)之间的随机整数。

答案 1 :(得分:27)

如果你想要50/50的概率,我建议:

Random rand = new Random();

if (rand.NextDouble() >= 0.5)
    lnkEvents.CssClass = "selected";
else
    lnkNews.CssClass = "selected";

答案 2 :(得分:3)

使用Next方法而不是NextDouble方法,可以更清楚地表达您想要做的事情(在两个值之间进行选择)。

const int ExclusiveUpperBound = 2;
if (new Random().Next(ExclusiveUpperBound) == 0)

产生的值是“大于或等于零,小于”ExclusiveUpperBound

答案 3 :(得分:2)

Random.NextDouble()将选择0中但小于1.0的任何双数。这些数字中的大部分都不为零,因此您的分布将不会像您预期的那样均匀。

答案 4 :(得分:0)

如果不是很紧张,可以使用

(DateTime.Now.Millisecond % 2) - double DateTime.Now.Millisecond % (double) 10) / 10

答案 5 :(得分:0)

一种非常简单的方法是:

Random random = new Random();
bool result = random.Next(0, 2) != 0;

然后将结果用于您的逻辑。

相关问题