C#随机数生成器-仅1或1?
如何使用随机数生成器生成1或-1,而不是0。到目前为止,我有:C#随机数生成器-仅1或1?,c#,random,numbers,C#,Random,Numbers,如何使用随机数生成器生成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和
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(包括x和y)之间,可以使用以下公式:
var result = random.Next(0, n) * (y - x) / (n - 1) + x;
例如,替换n=4、x=10和y=1将生成集合{1、4、7、10}中的随机数。您还可以使用a来确定要使用的数字
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;
}