Как я могу сгенерировать случайное число в определенном диапазоне?

Как я могу создать приложение, которое генерирует случайное число в Android, используя Eclipse, а затем отображать результат в поле TextView? Случайное число должно находиться в диапазоне, выбранном пользователем. Таким образом, пользователь введет максимальное и минимальное значения диапазона, а затем я выведу ответ.

Ответ 1

Чтобы расширить то, что сказал Рахул Гупта:

Вы можете использовать функцию Java int random = Random.nextInt(n).
Это возвращает случайное int в диапазоне [0, n-1].

Т.е. для получения диапазона [20, 80] используйте:

final int random = new Random().nextInt(61) + 20; // [0, 60] + 20 => [20, 80]

Чтобы обобщить больше:

final int min = 20;
final int max = 80;
final int random = new Random().nextInt((max - min) + 1) + min;

Ответ 2

Random r = new Random();
int i1 = r.nextInt(45 - 28) + 28;

Это дает случайное целое число между 28 (включительно) и 45 (исключая), одно из 28,29,..., 43,44.

Ответ 3

Кроме того, с уровня API 21 это возможно:

int random = ThreadLocalRandom.current().nextInt(min, max);

Ответ 4

"пользователь выбирает max no и min no?" Что вы подразумеваете под этой линией?

Вы можете использовать функцию java int random = Random.nextInt(n). Это возвращает случайный int в диапазоне [0, n-1]).

и вы можете установить его в текстовом виде с помощью метода setText()

Ответ 5

Итак, вам нужно следующее:

int random;
int max;
int min;

... где-то в вашем коде помещают метод для получения min и max от пользователя, когда они нажимают кнопку submit, а затем используют их в следующей строке кода:

random = Random.nextInt(max-min+1)+min;

Это будет случайным случайным числом между выбранным пользователем min и max. Затем вы выполните:

TextView.setText(random.toString());

Ответ 6

private int getRandomNumber(int min,int max) {
    return (new Random()).nextInt((max - min) + 1) + min;
}

Ответ 7

Вы можете использовать If Random. Например, это генерирует случайное число от 75 до 100.

final int random = new Random().nextInt(26) + 75;

Ответ 8

Генератор случайных чисел в Android Если вы хотите узнать о генераторе случайных чисел в Android, то вам следует прочитать эту статью до конца. Здесь вы можете получить всю информацию о генераторе случайных чисел в Android. Генератор случайных чисел в Android

Вы должны использовать этот код в вашем Java файле.

Random r = new Random();
                    int randomNumber = r.nextInt(100);
                    tv.setText(String.valueOf(randomNumber));

Я надеюсь, что этот ответ может быть полезным для вас. Если вы хотите прочитать больше об этой статье, вам следует прочитать эту статью. Генератор случайных чисел

Ответ 9

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

private void generateRandomNumbers(int min, int max) {
    // min & max will be changed as per your requirement. In my case, I've taken min = 2 & max = 32

    int randomNumberCount = 10;

    int dif = max - min;
    if (dif < (randomNumberCount * 3)) {
        dif = (randomNumberCount * 3);
    }

    int margin = (int) Math.ceil((float) dif / randomNumberCount);
    List<Integer> randomNumberList = new ArrayList<>();

    Random random = new Random();

    for (int i = 0; i < randomNumberCount; i++) {
        int range = (margin * i) + min; // 2, 5, 8

        int randomNum = random.nextInt(margin);
        if (randomNum == 0) {
            randomNum = 1;
        }

        int number = (randomNum + range);
        randomNumberList.add(number);
    }
    Collections.sort(randomNumberList);
    Log.i("generateRandomNumbers", "RandomNumberList: " + randomNumberList);
}