Каков эффективный способ генерации уникального случайного числа? - PullRequest
0 голосов
/ 29 ноября 2011

Я хочу сгенерировать случайное число для каждого пользовательского вклада в качестве заголовка вклада.

Я мог бы просто проверять базу данных каждый раз с помощью запроса и генерировать число, которое не равно ни одной из записей в базе данных. Но я считаю, что это неэффективно, и это может стать медленным, если база данных, на мой взгляд, большая. Также я должен был бы содержать все номера базы данных где-нибудь, чтобы управлять «не равно», в массиве или чем-то подобном, но это может закончиться гигантским.

Извините за речь мирянина. Я новичок в этом.

Есть предложения, как это можно эффективно решить, не слишком напрягая ресурсы? Вы можете объяснить это лингвистически и не нужно предоставлять мне никаких сценариев, я это выясню.

Ответы [ 2 ]

0 голосов
/ 29 ноября 2011

uniqid () даст вам случайное число, которое технически может повторяться.

Может быть, вы можете применить простой алгоритм к полю автоинкремента?n (n + 1) / 2 или что-то?

0 голосов
/ 29 ноября 2011

Вы можете использовать uniqid(). Я не уверен, насколько это портативно.

Пример:

printf("uniqid(): %s\r\n", uniqid());

Будет выводить что-то вроде:

uniqid(): 4b3403665fea6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...