Случайные числа в Java при работе с Android

Мне нужно сделать случайное число от 1 до 20 и на основе этого числа (используя инструкции "If-Then" ), мне нужно установить образ ImageView.

Я знаю, что в Objective-C он выглядит примерно так:

int aNumber = arc4Random() % 20;
if (aNumber == 1) {
    [theImageView setImage:theImage];
}

Как я могу сделать это на Java? Я видел, как это делается, но я не вижу, как я могу установить диапазон чисел (1-20, 2-7, ect).

int aNumber = (int) Math.random()

Ответ 1

Документы - ваши друзья

Random rand = new Random();
int n = rand.nextInt(20); // Gives n such that 0 <= n < 20

Documentation

Возвращает псевдослучайное равномерно распределенное значение int между 0 (включительно) и заданным значением (исключительным), взятым из этой последовательности генераторов случайных чисел. Таким образом, из этого примера у нас будет число от 0 до 19

Ответ 2

Math.random() возвращает double из [0,1 [. Random.nextInt(int) возвращает int из [0, int [.

Ответ 3

Вы можете попробовать:

int aNumber = (int) (20 * Math.random()) + 1;

или

Random rand = new Random();
int n = rand.nextInt(20) + 1;

Ответ 4

Вы можете использовать Math.random(), чтобы сгенерировать double между 0 и 1 не включительно. Android Javadoc здесь.

Ответ 5

Random r = new Random();
int number = r.nextInt(20);