Мне нужен лучший алгоритм или API для генерации 14 цифр, которые однозначно идентифицированы с возможностью достижения 0, чтобы иметь дубликаты. Модель генерации составляет около 12 раз в год с массой в 10 миллионов, поэтому общая сумма будет составлять 120 миллионов уникальных записей.Уникальное поколение 14 цифр (номеров)
ответ
Если вы выбрали числа случайным образом из фиксированного диапазона целых чисел, то вероятность дублирования не равна нулю.
Если вы хотите номера, которые трудно угадать и уникальное, то вам необходимо:
- хороший генератор случайных чисел, и
- базу данных (или аналогичный), чтобы держать все номера вы ранее генерироваться.
Алгоритм (псевдокод) является:
while (true) {
number = generate();
if (!lookupInDatabase(number)) {
recordInDatabase(number);
return number;
}
}
Спасибо, но, как я уже упоминал, есть огромное количество записей, и я не хочу, чтобы каждый раз я генерировал число, чтобы проверить, существует ли оно более чем на 120 миллионов записей. –
Вы слышали об индексах? Вам не нужно каждый раз проверять 120 миллионов записей. –
"возможность достижения значения 0, чтобы иметь дубликаты" это не случайно, то; так как случайный генератор будет иметь 1 в, возвращая любое число ... что означает, что с диапазоном 500 миллионов, для последнего номера у вас будет 120/500 вероятность дублирования для этого номера –
UKMonkey
@ saka1029 спасибо человеку но мне не нужно 14 цифр –
@UKMonkey Я согласен с тобой, что вы не случайно, знаете ли вы какой-либо алгоритм для генерации уникальных 14 цифр. –