C#随机数生成器-仅限1或1

本文关键字:仅限 随机数生成器 | 更新日期: 2023-09-27 18:00:32

如何使用随机数生成器生成1或-1而不是0。到目前为止,我有:xFacingDirection = randomise.Next(-1,2);,但这有产生数字0的风险。我该如何让不接受0,或者一直尝试一个数字,直到它不是0。

非常感谢

C#随机数生成器-仅限1或1

这个怎么样:

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;
    }