Tag: random

for循环中的随机迭代

我想创建一个以随机顺序循环遍历数字0-8的for循环。 请注意,每个号码只能访问一次。 我怎样才能做到这一点?

为什么这个方法每次都返回相同的随机字符串?

我需要创建一个独特的块来测试我正在处理的不同项目。 所以我创建了一个简单的程序来生成一个X长度的随机字符串。 问题是如果我调用它一次,我得到一个随机字符串,如果我再次调用它(例如在for循环中)我得到相同的字符串用于循环的整个执行。 我有一种感觉,它被缓存或其他东西,但我不知道.net这样做,我只是在这一点上感到困惑。 调用代码: StreamWriter SW = new StreamWriter(“c:\\test.txt”); int x = 100; while (x >0) { SW.WriteLine(RandomString(20)); x–; } 这是方法: private static string RandomString(int Length) { StringBuilder sb = new StringBuilder(); Random randomNumber = new Random(); for (int i = 0; i <= Length; ++i) { int x = randomNumber.Next(65, 122); sb.Append(Convert.ToChar(x)); } […]

随机数生成器在循环内运行时始终选择相同的值

代码的问题是,当我尝试生成一个数字时,如果自旋等于1,它会在范围(1,2,3)内生成值,如果尝试使用循环对相同范围内的随机值进行求和则随机在循环中,数字gerated始终是相同的, 例如,如果我使用:spind3 = 4运行循环,则值从4,8,12 spind3 = 5开始,值从5,10,15开始 这意味着RandomNumber第一次在循环内生成一个值,它在循环完成之前永远不会改变。 if (toggled3.Checked) { if (spind3.Value != 1) { for (int i = 1; i <= spind3.Value; i++) { diceCalc[1] += RandomNumber(1, 4); } } else diceCalc[1] = RandomNumber(1, 4); }

为什么Random.Next()总是返回相同的数字

考虑这种方法: private static int GenerateRandomNumber(int seed, int max) { return new Random(seed).Next(max); } 在我的机器上,执行此循环会产生相同数量的1500次迭代: for (int i = 0; i < 1501; i++) { int random = GenerateRandomNumber(100000000, 999999999); Console.WriteLine(random.ToString()); Console.ReadKey(); } 每次迭代我得到145156561。 我没有一个紧迫的问题,我只是对这种行为感到好奇,因为.Next(max)说“返回一个非负的随机数小于指定的最大值。也许我不理解一些基本的东西。