我怎麼去使用一個隨機數發生器來產生1或-1,但不是0.我到目前爲止:xFacingDirection = randomise.Next(-1,2);
,但運行產生數字0的風險。我會如何去做不接受0或保存努力了數量,直到其不爲0C#隨機數發生器只有-1或1嗎?
非常感謝
我怎麼去使用一個隨機數發生器來產生1或-1,但不是0.我到目前爲止:xFacingDirection = randomise.Next(-1,2);
,但運行產生數字0的風險。我會如何去做不接受0或保存努力了數量,直到其不爲0C#隨機數發生器只有-1或1嗎?
非常感謝
這個怎麼樣:
var result = random.Next(0, 2) * 2 - 1;
爲了解釋這一點,random.Next(0, 2)
只能當你乘上產生的0或1的值。由2,它給出0或2.並簡單地減去1得到-1或1
通常,爲了隨機地產生的Ñ整數之一,均勻的X最小值和最大值之間分佈ÿ,包容,可以使用以下公式:
var result = random.Next(0, n) * (y - x)/(n - 1) + x;
例如代ñ = 4,X = 10,和ÿ = 1將在集{1,4,7,10}生成randum號碼。
您也可以使用ternary operator來確定使用哪個數字。
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;
}
簡單的數學,謝謝! –