Ответ 1
Ты почти там. Просто добавьте 1 к результату:
int randomInt = (int)d + 1;
Это изменит ваш диапазон на 1 - 100
вместо 0 - 99
.
Хорошо, я до сих пор довольно новичок в Java. Нам была предоставлена помощь в создании игры, в которой вы должны угадать случайное целое число, сгенерированное компьютером. Проблема в том, что наш лектор настаивает на том, что мы используем:
double randNumber = Math.random();
И затем перевести это в случайное целое число, которое принимает 1 - 100 включительно. Я немного в недоумении. Что я до сих пор таков:
//Create random number 0 - 99
double randNumber = Math.random();
d = randNumber * 100;
//Type cast double to int
int randomInt = (int)d;
Однако случайная затяжная проблема случайного двойника состоит в том, что 0 - возможность, а 100 - нет. Я хочу изменить это так, чтобы 0 не был возможным ответом, а 100 - это. Помогите?
Ты почти там. Просто добавьте 1 к результату:
int randomInt = (int)d + 1;
Это изменит ваш диапазон на 1 - 100
вместо 0 - 99
.
или
Random r = new Random();
int randomInt = r.nextInt(100) + 1;
Вот простой и эффективный способ сделать это, с проверкой диапазона! Наслаждайтесь.
public double randDouble(double bound1, double bound2) {
//make sure bound2> bound1
double min = Math.min(bound1, bound2);
double max = Math.max(bound1, bound2);
//math.random gives random number from 0 to 1
return min + (Math.random() * (max - min));
}
//Позже просто позвоните:
randDouble(1,100)
//example result:
//56.736451234
double random = Math.random();
double x = random*100;
int y = (int)x + 1; //Add 1 to change the range to 1 - 100 instead of 0 - 99
System.out.println("Random Number :");
System.out.println(y);