Как получить случайный от 1 до 100 из randDouble в Java?

Хорошо, я до сих пор довольно новичок в 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

Ты почти там. Просто добавьте 1 к результату:

int randomInt = (int)d + 1;

Это изменит ваш диапазон на 1 - 100 вместо 0 - 99.

Ответ 2

или

Random r = new Random();
int randomInt = r.nextInt(100) + 1;

Ответ 3

Вот простой и эффективный способ сделать это, с проверкой диапазона! Наслаждайтесь.

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

Ответ 4

    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);