C#System.Random接下来出来排序

时间:2016-03-03 10:01:01

标签: c# random next

我正在尝试从数组中访问随机元素,但我使用的Random生成器依次按顺序给我数字:

Ordered Random

数字将始终排序,从不完全随机(即,下一个数字总是更大,直到达到最大值,然后再次从低数字开始)。这也可以是递增的或递减的。

我正在使用种子Random对象和Random.Next(-100,100)。 这与MSDN Random.Next page

上显示的行为不同

我能想到的是,与Unity打包的.Net版本没有最新的Random?这种混乱的任何解决方案?

//Example
//Seed and ods set before the Awake method is called
public int seed;
public GameObject[] pathPartOds;

Random random;
GameObject[] path;

void Awake () 
{
    random = new Random (seed);
}

void CreatePath (int length) 
{
    path = new GameObject[length];

    for (int i = 0; i < length; i++)
        path[i] = pathPartOds[random.Next (0, pathPartOds.length)];
}

使用了多个种子并且它们都给出了相同的结果,并且我一直使用随机int

创建种子

1 个答案:

答案 0 :(得分:1)

您需要创建一个Random完全一次的实例,并将其作为参数传递到绘制随机数的函数中。

否则,您将破坏生成器的统计属性,因为它以系统(即非随机)方式播种。这解释了输出的分段单调性。