一尘不染

为什么我的随机数生成器在C#中似乎不是随机的?

c#

我正在使用Microsoft Visual C#2008 Express。

我发现以下代码片段:

    public static int RandomNumber(int min, int max)
    {
        Random random = new Random();

        return random.Next(min, max);
    }

问题是我已经运行了100多次,并且当我的min = 0和max = 1时,总是给我相同的答案。我每次都得到0。(我创建了一个测试函数来运行它-确实-
每次我都得到0)。我很难相信这是一个巧合…还有什么我可以做些检查或测试的吗?(我确实使用min = 0和max =
10并在前50ish次中重新运行测试,结果始终为“ 5”,在第二50ish次中,结果始终为“ 9”。

?? 我需要一些更一致的随机性…

-阿德娜


阅读 225

收藏
2020-05-19

共1个答案

一尘不染

min = 0和max = 1的问题在于min是包含在内的,而max是排斥的。因此,该组合的唯一可能值为0。

2020-05-19