如何在2个数字之间创建随机数,但它只是在一个范围内变化?

时间:2014-06-19 07:21:40

标签: java random

有人知道如何在两个数字之间创建随机数,但它只是在一个范围内变化吗?

例如,创建10到100之间的随机数,每次更改都在[-5,+ 5]范围内。 例如:如果第一个随机数为17,则后随机数将在[12,22]范围内

谢谢!

2 个答案:

答案 0 :(得分:1)

此算法选择范围为[0,100]的初始随机值x。之后,每个新的随机值y将在之前的随机值x的5之内。

    int maximum = 100;
    int minimum = 0;

    Random rn = new Random();
    int range = maximum - minimum + 1;
    int randomNum =  rn.nextInt(range) + minimum;
    System.out.println(randomNum);

    for (int i=0; i< 100; i++) {
        maximum = randomNum + 5;
        minimum = randomNum - 5;

        range = maximum - minimum + 1;
        randomNum =  rn.nextInt(range) + minimum;
        System.out.println(randomNum);
    }

答案 1 :(得分:0)

我想我理解你的问题,但在例子中你的序列有点混淆。这是可能的答案之一:

在java中,你可以这样生成:

Random rn = new Random();
int range = maximum - minimum + 1;
int randomNum =  rn.nextInt(range) + minimum;