Я знаю, что подобные вопросы вызывают много, и, вероятно, нет окончательного ответа, но я хочу сгенерировать пять уникальных случайных чисел из подмножества чисел, которое потенциально бесконечно (возможно, 0-20, или 0-1 000 000).
Единственный улов в том, что я не хочу запускать циклы while
или заполнить массив.Пять уникальных случайных чисел из подмножества
Мой текущий метод состоит в том, чтобы просто сгенерировать пять случайных чисел из подмножества минус последние пять чисел. Если какое-либо из чисел соответствует друг другу, то они переходят в соответствующее место в конце подмножества. Поэтому, если четвертое число соответствует любому другому номеру, ставка будет установлена на четвертое с последнего номера.
У кого-нибудь есть метод, который является «случайным образом» и не требует дорогостоящих циклов или массивов?
Обратите внимание на это любопытство, а не на критическую проблему. Я был бы признателен, если бы все не опубликовали «почему у вас такая проблема?» ответы. Я просто ищу идеи.
Большое спасибо!
«дорогостоящая» петля 5-7 итераций? **Ты шутишь? –
Я имел в виду, что я пытаюсь избежать всего метода цикла while, в котором кто-то генерирует числа в цикле 'while', пока не получит уникальный номер. Я понимаю, что шансы получить дублирующиеся числа - тонкие, но это любопытство, и я не ищу решение, которое гипотетически бесконечно во время исполнения. – tau
Вы понимаете, что вероятность его бесконечного времени невелика: p – Artefacto