我需要编写一个短随机数,它产生一个介于1到N之间的随机数,其中随机数增加了M的倍数.
例如:生成1到(N = 30)之间的数字,增加(M = 5)的倍数.唯一可能生成的数字可以是:1,5,10,15,20,25和30.希望你得到我的意思:)
通常,如果使用new Random().nextInt(30)+1,则会使数字增加1(1,2,3,4,5,6,7等)的倍数.那不是我想要的.
任何帮助,链接或方向非常感谢?
编辑:
生成的随机数序列可以包括1而不是0是该方法的要求之一.确切地说,序列始终以下限(min)开始.在该示例中,下限是1,因此序列中不能为零.我知道这很奇怪,但这些是我必须遵循的要求;)
您可以将随机值乘以5.因为您希望得到1而不是0,只需查找该值并专门更改它:
static final Random random = new Random(System.currentTimeMillis());
public int random(int range, int multiple) {
int value = random.nextInt(range / multiple) * multiple;
return value == 0 ? 1 : value;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3876 次 |
| 最近记录: |