2016-10-18 8 views
-1

Мне нужен лучший алгоритм или API для генерации 14 цифр, которые однозначно идентифицированы с возможностью достижения 0, чтобы иметь дубликаты. Модель генерации составляет около 12 раз в год с массой в 10 миллионов, поэтому общая сумма будет составлять 120 миллионов уникальных записей.Уникальное поколение 14 цифр (номеров)

+2

"возможность достижения значения 0, чтобы иметь дубликаты" это не случайно, то; так как случайный генератор будет иметь 1 в , возвращая любое число ... что означает, что с диапазоном 500 миллионов, для последнего номера у вас будет 120/500 вероятность дублирования для этого номера – UKMonkey

+0

@ saka1029 спасибо человеку но мне не нужно 14 цифр –

+0

@UKMonkey Я согласен с тобой, что вы не случайно, знаете ли вы какой-либо алгоритм для генерации уникальных 14 цифр. –

ответ

0

Если вы выбрали числа случайным образом из фиксированного диапазона целых чисел, то вероятность дублирования не равна нулю.

Если вы хотите номера, которые трудно угадать и уникальное, то вам необходимо:

  • хороший генератор случайных чисел, и
  • базу данных (или аналогичный), чтобы держать все номера вы ранее генерироваться.

Алгоритм (псевдокод) является:

while (true) { 
    number = generate(); 
    if (!lookupInDatabase(number)) { 
     recordInDatabase(number); 
     return number; 
    } 
} 
+0

Спасибо, но, как я уже упоминал, есть огромное количество записей, и я не хочу, чтобы каждый раз я генерировал число, чтобы проверить, существует ли оно более чем на 120 миллионов записей. –

+0

Вы слышали об индексах? Вам не нужно каждый раз проверять 120 миллионов записей. –