这个数字有多独特?

时间:2011-10-11 14:50:48

标签: c# random

在刻意拖延之后,我开始想知道随机数以及没有人对随机数生成器的随机性感到满意,并想出了下面的代码。这会比随机更随机吗?

注意:我只是在这里玩,也就是说:不是一个严肃的问题,绝对不值得花一个多小时回答。

        Random rand = new Random();
        List<int> fifteenRandomNumbers = new List<int>();
        for (int i = 0; i < 15; i++)
        {
            int randomNumber = rand.Next(0, 10);
            fifteenRandomNumbers.Add(randomNumber);
        }
        string allNumbers = "";
        foreach (int number in fifteenRandomNumbers)
        {
            allNumbers += number;
        }
        Convert.ToUInt64(allNumbers);

更新:感谢您的快速回答,并且重申一下,这不是我的目标实际实现,我只是好奇。而且我并不担心它是否会起作用,更多的是关于更广泛的随机数概念。我也没有考虑密码学,尽管它可能很有趣。我也不担心铸造等。

只是为了解释我的想法(已被指出完全错误,但这就是我问的原因) 我想如果我从15个Random.Next(0,n)操作中加入一系列结果,获得一个真正随机数的几率会大于我只做过一次这样的操作。据说这是一个错误的假设,我很感激回答我的问题的时间。

1 个答案:

答案 0 :(得分:2)

不,它不再是随机的,不,它甚至不适合Int32的范围。 999,999,999,999,999(15位)&gt; int.MaxValue

如果您对Random的随机性不满意,很可能您(a)使用错误或(b)需要more cryptographically secure