Java генерирует случайное число между двумя заданными значениями

Я хотел бы знать, как создать случайное число между двумя заданными значениями.

Я могу сгенерировать случайное число со следующим:

Random r = new Random();

for(int i = 0; i < a.length; i++){
    for(int j = 0; j < a[i].length; j++){
        a[i][j] = r.nextInt();
    }

}

Однако, как я могу создать случайное число от 0 до 100 (включительно)?

Спасибо всем.

Ответ 1

Вы можете использовать, например. r.nextInt(101)

Для более общего "между двумя числами" используйте:

Random r = new Random();
int Low = 10;
int High = 100;
int Result = r.nextInt(High-Low) + Low;

Это дает вам случайное число между 10 (включительно) и 100 (эксклюзивным)

Ответ 2

Предполагая, что верхняя граница верхней границы, а нижняя - нижняя граница, вы можете сделать случайное число r между двумя границами:

int r = (int) (Math.random() * (upper - lower)) + lower;

Ответ 3

Er...

int Random = (int)(Math.random()*100);

если вам нужно сгенерировать более одного значения, тогда просто используйте для цикла для этого

 for (int i = 1; i <= 10 ; i++)
       {
        int Random = (int)(Math.random()*100);
        System.out.println(Random);
       }

Если вы хотите указать более приличный диапазон, например, от 10 до 100 (оба находятся в диапазоне)

поэтому код будет выглядеть следующим образом:

   int Random =10 +  (int)(Math.random()*(91));
   /* int Random = (min.value ) + (int)(Math.random()* ( Max - Min + 1));
  *Where min is the smallest value You want to be the smallest number possible to       
  generate and Max is the biggest possible number to generate*/

Ответ 4

Как это,

Random random = new Random();
int randomNumber = random.nextInt(upperBound - lowerBound) + lowerBound;

Ответ 5

Используйте Random.nextInt(int).

В вашем случае это будет выглядеть примерно так:

a[i][j] = r.nextInt(101);

Ответ 6

В Java нет генератора случайных чисел между двумя значениями так же, как это делает Python. Для генерации Random это фактически принимает только одно значение. Тогда вам нужно добавить ОДИН НЕКОТОРЫЙ НОМЕР к числу сгенерированных, что приведет к тому, что число будет в пределах диапазона. Например:

package RandGen;

import java.util.Random;

public class RandGen {


    public static Random numGen =new Random();

public static int RandNum(){
    int rand = Math.abs((100)+numGen.nextInt(100));

    return rand;
}

public static void main(String[]Args){
   System.out.println(RandNum());
}

}

Эта программная функция целиком лежит в строке 6 (первая начинается с "int rand...". Обратите внимание: Math.abs() просто преобразует число в абсолютное значение и объявляется как int, что не очень важно Первое (100) - это число, которое Я ДОБАВЛЯЮ к случайному. Это означает, что новый номер выхода будет случайным числом + 100. numGen.nextInt() - это значение самого случайного числа, и потому, что я ставлю (100) в его круглых скобках, это любое число от 1 до 100. Поэтому, когда я добавляю 100, оно становится числом от 101 до 200. На самом деле вы не GENERATING число от 100 до 200, вы добавляете к одному от 1 до 100.

Ответ 7

Можно также попробовать следующее:

public class RandomInt { 
    public static void main(String[] args) { 

        int n1 = Integer.parseInt(args[0]);
        int n2 = Integer.parseInt(args[1]);
        double Random;

        if (n1 != n2)
        {
            if (n1 > n2)
            {
                Random = n2 + (Math.random() * (n1 - n2));
                System.out.println("Your random number is: " + Random);
            }
            else
            {
                Random = n1 + (Math.random() * (n2 - n1));   
                System.out.println("Your random number is: " +Random);
            }
        } else {
            System.out.println("Please provide valid Range " +n1+ " " +n2+ " are equal numbers." );
        }                     
    }
}