C#随机数生成器-仅限1或1
本文关键字:仅限 随机数生成器 | 更新日期: 2023-09-27 18:00:32
如何使用随机数生成器生成1或-1而不是0。到目前为止,我有:xFacingDirection = randomise.Next(-1,2);
,但这有产生数字0的风险。我该如何让不接受0,或者一直尝试一个数字,直到它不是0。
非常感谢
这个怎么样:
var result = random.Next(0, 2) * 2 - 1;
为了解释这一点,random.Next(0, 2)
只能产生0或1的值。当你把它乘以2,就会得到0或2。只需减去1就可以得到-1或1。
通常,要随机生成n整数中的一个,该整数均匀分布在x的最小值和y(含)的最大值之间,可以使用以下公式:
var result = random.Next(0, n) * (y - x) / (n - 1) + x;
例如,将n=4、x=10和y=1代入将在集合{1,4,7,10}中生成随机数。
您还可以使用三元运算符来确定要使用的数字。
int number = (random.Next(0, 2) == 1) ? 1 : -1);
评估为
if (random.Next(0, 2) == 1)
number = 1;
else
number = -1;
这是我的实现。与上述内容相似,但略有不同。找出更多的答案可以帮你更多的忙。
public int result()
{
// randomly generate a number either 1 or -1
int i;
Random rando = new Random();
i = rando.Next(0, 2);
if (i == 0)
{
i = -1;
}
return i;
}