如何在给定范围之间生成奇数随机数..
对于Eg:对于1到6之间的范围.随机数为3或1或5
生成随机数的方法:
Random_No = Min + (int)(Math.Random()*((Max-Min)+1))
Run Code Online (Sandbox Code Playgroud)
生成奇数随机数的方法:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
这个函数总是将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));
Run Code Online (Sandbox Code Playgroud)
它导致所有奇数之间的均匀分布.
| 归档时间: |
|
| 查看次数: |
10434 次 |
| 最近记录: |