在给定范围内生成奇数随机数

如何在给定范围之间生成奇数随机数。

对于例如:对于1到6之间的范围。随机编号为3或1或5

产生随机数的方法:

    Random_No = Min + (int)(Math.Random()*((Max-Min)+1))

请参阅如何在Java中生成特定范围内的随机整数?

产生奇数随机数的方法

    Random_No = Min + (int)(Math.Random()*((Max-Min)+1))

if(Random_No%2 ==0)

{

if((Max%2)==0)&&Random_No==Max)

{

Random_No = Random_No - 1;

}

else{

Random_No = Random_No +1;

}

}

此函数将始终将2转换为3而不是1。我们能否使它成为一个更随机的函数,该函数有时将2转换为3,有时转换为1?

回答:

假设max为包容性,我建议以下几点:

if (Max % 2 == 0) --Max;

if (Min % 2 == 0) ++Min;

Random_No = Min + 2*(int)(Math.random()*((Max-Min)/2+1));

它导致所有奇数之间的偶数分布。

以上是 在给定范围内生成奇数随机数 的全部内容, 来源链接: utcz.com/qa/400229.html

回到顶部