加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 随机而不是随机

发布时间:2020-12-15 18:31:37 所属栏目:百科 来源:网络整理
导读:参见英文答案 Random number generator only generating one random number9个 我使用Random来生成一个随机数序列.我只构造一次随机对象,然后在循环内生成随机值(其中300个).问题是,一旦我获得了所有的值并对它们进行了排序,我就会发现它们中的一些是相同的
参见英文答案 > Random number generator only generating one random number9个
我使用Random来生成一个随机数序列.我只构造一次随机对象,然后在循环内生成随机值(其中300个).问题是,一旦我获得了所有的值并对它们进行了排序,我就会发现它们中的一些是相同的和/或顺序的:我生成的数字从0到50000.

这是我的脚本:

Random rnd = new Random();
for (int n=0; n < 300; n++)
{
    int RndNumber = rnd.Next(0,50000);
    System.Threading.Thread.Sleep(3);
}

有人可以知道为什么会发生这种情况,我该如何改进它以使其更随机?

解决方法

作为你偶然看到重复的原因的解释,Jason’s answer是正确的.

如果你想要的是300个不同的随机数,那么这样的东西怎么样?

static IEnumerable<int> GetRandoms(int min,int max)
{
    var rand = new Random();
    while (true)
    {
        yield return rand.Next(min,max);
    }
}

var distinctRandoms = GetRandoms(0,50000).Distinct().Take(300);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读