Я не знаю, почему дизайнеры в Java не проектировал объекты java.util.Random возвращать случайные числа, как это:Как указать диапазоны для java.util.Random?
rand.nextInt(minValue, maxValue);
Я не понимаю, как пройти минимум и максимум значения этого функция. Я видел это рекомендуется:
random.nextInt(max + 1 - (min)) + min
, но что это значит? Значит ли это:
random.nextInt(FULL_RANGE + 1) + START_OF_RANGE
Например, если бы я хотел, чтобы генерировать значения от -1 до 1 включительно, это как я это делаю:
int oneOfThreeChoices = rand.nextInt(1 + 1 + 1) - 1;
Что касается «что это значит»: 'max - min + 1' - это размер диапазона. Например, если вам нужны значения в диапазоне '[1, 4]', тогда вы хотите 4 разных значения (1, 2, 3, 4) - это '4 - 1 + 1'. Теперь, поскольку аргумент arg to nextInt является исключительным, вы хотите передать его 4. Это получает значения в {0, 1, 2, 3}, так что независимо от того, что вы получите, вы просто сдвигаете его на 1 (т. Е. min'), чтобы получить значения в {1, 2, 3, 4}. – yshavit
Ответ, связанный модами, является гораздо более сложным вопросом. Главный ответ не имеет значения. Как это полезно? Это мне не помогает. –
Как это не имеет значения? Насколько я могу судить, ваш вопрос в основном «как я могу генерировать случайный int в заданном диапазоне min/max?» Если это ваш вопрос, связанный дубликат отвечает на него, и мой комментарий здесь даже немного объясняет это на примере. Если это не ваш вопрос, что это? – yshavit