@ Ответ Nanne решает начальный с 0 элемент этого вопроса, но просто читая этот код, я бы посоветовал вам также изменить свой уникальный генератор случайных чисел (хотя я понимаю, что это не тот вопрос, который вы задаете).
Ваш алгоритм в порядке для максимального значения 4 только с 3 уникальными записями, но если вы хотите начать создавать тысячи уникальных записей, ваш алгоритм будет работать очень медленно, чем больше число уникальных чисел вы хотитеполучить (это O (n ^ 2)).
Так, скажем, если вы хотите 10000 уникальных чисел на 9999-м номере, вы будете сканировать весь массив потенциально сотни раз, пока не найдете номер, который еще не видели.
Лучший способ сделать это зависит от того, что вы хотите.Если вы хотите получить случайную последовательность уникальных чисел в диапазоне, то лучше начать с упорядоченного массива растущих значений, а затем просто перемешать этот массив на некоторое время, произвольно меняя значения.Скажем, для n уникальных чисел сделать n случайных перестановок, это O (n).
Если вам нужны случайные числа в очень широком диапазоне, вам нужно сохранить сгенерированные числа в словаре, чтобы вы могли быстро найти, какиечисла, которые вы уже сгенерировали.Я думаю, что это также будет O (n).