很多时候,当我绘制数字时,我得到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);
}
代码:
答案 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)
因此只能返回两个值 - 0
或1
。
您可能会误解Random.Next(minValue, maxValue)
参数的含义 - 请查看MSDN了解详细信息。