2016-10-18 2 views
-1

J'ai besoin du meilleur algorithme ou API pour générer 14 chiffres qui sont identifiés de manière unique avec une possibilité d'atteindre 0 pour avoir des doublons. Le modèle de production est environ 12 fois dans l'année avec un volume de 10 millions, d'où le total de 120 millions d'enregistrements uniques identifiés.Génération unique de 14 chiffres (nombres)

+2

"possibilité d'atteindre 0 à avoir des doublons" qui n'est pas au hasard alors; comme un générateur aléatoire aura un 1 dans de retourner n'importe quel nombre ... ce qui signifie qu'avec une gamme de 500 millions, pour le dernier nombre, vous auriez 120/500 chances d'un doublon pour ce seul numéro – UKMonkey

+0

@ saka1029 merci l'homme mais je n'ai pas besoin de 14 chiffres –

+0

@UKMonkey je suis d'accord avec vous n'est pas aléatoire, connaissez-vous un algorithme pour générer 14 chiffres uniques. –

Répondre

0

Si vous avez choisi des nombres de manière aléatoire à partir d'une plage fixe d'entiers, alors la probabilité de doublons n'est pas nulle.

Si vous voulez des chiffres qui sont difficiles à deviner et unique, alors vous avez besoin:

  • un bon générateur de nombres aléatoires, et
  • une base de données (ou similaire) pour contenir tous les chiffres que vous avez déjà généré.

L'algorithme (pseudo-code) est:

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

Merci, mais comme je l'ai mentionné avant il y a un grand nombre d'enregistrements et je ne veux pas chaque fois que je génère un nombre pour vérifier s'il existe plus de 120 millions d'enregistrements. –

+0

Avez-vous entendu parler des index? Vous n'avez pas besoin de vérifier 120 millions d'enregistrements à chaque fois. –