在这段代码中,我总是得到否定的答案。为什么?我希望总是得到不同的答案,因为它是随机的。我会很乐意提供任何帮助!
Random random = new Random();
int a = 10;
int cycle = 1000;
while (cycle != 0)
{
a += random.Next(-1, 1);
cycle--;
}
Run Code Online (Sandbox Code Playgroud)
随着Next(-1, 1)你会得到-1或0。从来没有1,因为:
下界的Random.Next是包容。
的上限Random.Next是独占。
要实现您的目标,请将范围从 更改[-1, 1)为[-1, 2)
random.Next(-1, 2)
Run Code Online (Sandbox Code Playgroud)
让我们来看看文档Random.Next(int, int):
参数
minValue返回的随机数的包含下限。
maxValue返回的随机数的唯一上限。
maxValue必须大于或等于minValue。退货
大于或等于
minValue且小于 的32 位有符号整数maxValue;也就是说,返回值的范围包括minValue但不包括maxValue。如果minValue等于maxValue,minValue则返回。
所以你要的是一个数字
-11您将在-1和 处获得的可能数字0。请注意,如果将许多-1's 和0's 添加在一起,则永远不会超过01 ...
如果您想获取数字-1,0和1,则需要使用:
random.Next(-1, 2);
Run Code Online (Sandbox Code Playgroud)
1禁止整数溢出
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |