我在静态类中的静态方法中有以下代码:
Random r = new Random();
int randomNumber = r.Next(1,100);
Run Code Online (Sandbox Code Playgroud)
我在循环中有这个,我一直都这样randomNumber!
这里有什么建议?
编辑:这不是重复,它不是对如何使用随机数生成器的天真误解的结果.谢谢.
我似乎在System.Random类生成的数字中发现了重复模式.我正在使用"主"Random实例为第二个"主"Random实例生成种子.此主要Random实例生成的值显示重复模式.特别是,产生的第3个数字是非常可预测的.
下面的程序演示了这个问题.请注意,每次循环使用不同的种子值.
using System;
class Program
{
static void Main(string[] args)
{
// repeat experiment with different master RNGs
for (int iMaster = 0; iMaster < 30; ++iMaster)
{
// create master RNG
var rngMaster = new Random(iMaster + OFFSET);
// obtain seed from master RNG
var seed = rngMaster.Next();
// create main RNG from seed
var rngMain = new Random(seed);
// print 3rd number generated by main RNG
var ignore0 = rngMain.Next(LIMIT);
var ignore1 = rngMain.Next(LIMIT);
var randomNumber …Run Code Online (Sandbox Code Playgroud)