Уникальные (неповторяющиеся) случайные числа в O (1)?

Вы можете сделать это:

  1. Создайте список, 0..1000.
  2. Перемешайте список. (См. Fisher-Yates shuffle, как это сделать.)
  3. Возвращать номера по порядку из перемешанного списка.

Таким rand образом, это не требует каждый language-agnostic раз поиска старых значений, но algorithms все же требуется O (N) для mathematical начального перемешивания. Но, как algorithm указал Нильс в комментариях, это math амортизируется O (1).

algorithm

math

random

language-agnostic

2022-11-05T16:46:21+00:00
Вопросы с похожей тематикой, как у вопроса:

Уникальные (неповторяющиеся) случайные числа в O (1)?