【发布时间】:2026-01-17 03:45:01
【问题描述】:
如何在给定范围内生成奇数随机数..
例如:对于 1 到 6 之间的范围 .. 随机数是 3 或 1 或 5
随机数生成方法:
Random_No = Min + (int)(Math.Random()*((Max-Min)+1))
参考How do I generate random integers within a specific range in 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 ??
【问题讨论】:
-
另一种方法是生成一个从 0 到 2 (
(6-1)/2) 的数字,然后加倍然后递增结果。很容易将其推广到以任何数字开头的范围。