在Java中生成随N的倍数增加的随机数

chr*_*gel 1 java random

我需要编写一个短随机数,它产生一个介于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,因此序列中不能为零.我知道这很奇怪,但这些是我必须遵循的要求;)

Mat*_*len 9

您可以将随机值乘以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)