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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |