Возможный дубликат:
Создать случайную числовую последовательность без повторовЯ хотел бы написать сокращатель URL, который использует только числа как короткая строка.
Я не хочу считать, я хочу, чтобы следующее новое число было случайным (или псевдослучайным).
На первый взгляд алгоритм будет выглядеть так (псевдокод):
do { number = random(0,10000) } while (datastore.contains(number)) datastore.store(number, url)
Проблема с этой реализацией заключается в следующем: чем больше в хранилище данных, тем больше вероятность того, что цикл будет выполняться несколько раз. Производительность со временем будет снижаться.
Нет лучшего способа получить случайное число, которое еще не используется?