随机相似的绘制序列

时间:2012-12-27 10:49:35

标签: c# random

很多时候,当我绘制数字时,我得到0并且我总能看到类似的绘制序列。你知道为什么吗?

例如: losowanie(3) - >结果0有时1?

代码:

 public int losowanie(int w)
        {
            Random rand = new Random(Guid.NewGuid().GetHashCode());
            int s = w - 1;
            return rand.Next(0, s);
        }

代码:

enter image description here

2 个答案:

答案 0 :(得分:1)

实例化您的Random类并重用该实例。例如,通过在类中使用随机序列的私有静态字段。暂且不说:我怀疑Guid.NewGuid()的默认种子会给Random()的无参数构造函数带来更好的结果。

public class whatever
{
        static Random rand = new Random(Guid.NewGuid().GetHashCode());
        // or use new Random(); 

        public int losowanie(int w)
        {
            int s = w - 1;
            return rand.Next(0, s);
        }
}

答案 1 :(得分:1)

您看到的行为是正确的 - losowanie(3)调用rand.Next(0, 2)因此只能返回两个值 - 01

您可能会误解Random.Next(minValue, maxValue)参数的含义 - 请查看MSDN了解详细信息。