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

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

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

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

algorithm

math

random

language-agnostic

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

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