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." );
}
}
}