Chaine e caractere unique ???????

Résolu/Fermé
nickleus Messages postés 374 Date d'inscription dimanche 20 janvier 2008 Statut Membre Dernière intervention 18 juin 2011 - 29 mars 2008 à 19:48
beate Messages postés 166 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 7 juillet 2010 - 30 mars 2008 à 13:07
Bonjour,

voila j'ai récupéré un script qui génère une chaine de caractère unique :

function random($car) {
$string = "";
$chaine = "abcdefghijklmnpqrstuvwxy0123456789";
srand((double)microtime()*1000000);
for($i=0; $i<$car; $i++) {
$string .= $chaine[rand()%strlen($chaine)];
}
return $string;
}

// APPEL
// Génère une chaine de longueur 20
$chaine = random(13);


quelqu'un pourrait il me dire en quoi cette chaine est unique?????
car je souhaite mettre cette chaine dans une table comme cle primaire alors il ne faudrait pas qu'il y ait une chaine déjà existante.

merci de vos réponses

A voir également:

5 réponses

beate Messages postés 166 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 7 juillet 2010 6
29 mars 2008 à 20:19
essaie pour voir!
0
nickleus Messages postés 374 Date d'inscription dimanche 20 janvier 2008 Statut Membre Dernière intervention 18 juin 2011 5
29 mars 2008 à 20:28
le script marche

mais avant de trouver 2 chaines identiques j'ai le temps de me faire des cheveux blanc.

ce que je demande c'est :

est ce que la chaine qui est généré par ce bout de script est réellement unique ?
0
beate Messages postés 166 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 7 juillet 2010 6
29 mars 2008 à 22:43
Ah bon.
Si je comprends bien, cette chaîne de caractères est constituée de 20 caractères choisis parmi les 26 lettres de l'alphabet et les dix chiffres de 0 à 9. Ce que je peux te dire, c'est qu'il y a énormément de possibilités. Cela rend la probabilité d'en générer deux pareilles infiniment faible, quasi nulle. Je peux te calculer cette probabilité, mais le résultat est qu'il est pratiquement impossible de générer deux chaînes pareilles de 20 caractères de cette manière.
Je ne sais pas si cette réponse peut t'aider...
0
nickleus Messages postés 374 Date d'inscription dimanche 20 janvier 2008 Statut Membre Dernière intervention 18 juin 2011 5
30 mars 2008 à 10:52
merci pour la réponse.

En faite, je cherche a savoir si cette chaine est unique, c'est pour savoir si je doit faire une recherche et comparer cette chaine a celle qu'il y aurait dans ma table.

savoir si c'est une clé vraiment unique m'éviterais d'ajouter des ligne de code supplémentaire (et qui plus est inutile si ca ne sert a rien).
0
beate Messages postés 166 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 7 juillet 2010 6
30 mars 2008 à 10:53
Voilà la suite:
Le nombre de possibilités de choisir une chaîne de 20 caractères parmi 36 symboles est de 36 puissance 20, soit environ 1,4 fois 10 puissance ... 31!
C'est un nombre tellement colossal qu'il n'existe rien dans la nature qui le dépasse. Une distance de 820 années-lumière correspond par exemple à 7,8 fois 10 puissance 21 millimètres "seulement".
Tu peux donc, pratiquement, estimer que ta chaîne de caractères sera unique.
0
beate Messages postés 166 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 7 juillet 2010 6
30 mars 2008 à 10:55
Nos réponses se sont croisées!
Il n'y a donc pas besoin de faire de recherches supplémentaires, tu peux y aller comme ça!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nickleus Messages postés 374 Date d'inscription dimanche 20 janvier 2008 Statut Membre Dernière intervention 18 juin 2011 5
30 mars 2008 à 11:51
alors toi tu es excellent en math. tu n'aurait pas fait math sup sup sup :).

merci pour la réponse. je crois je ne vais pas m'amuser a comparer si c'est vraiment unique merci encore
0
beate Messages postés 166 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 7 juillet 2010 6
30 mars 2008 à 13:07
Oui, tu as deviné.
En fait il y a autant de possibilités qu'il y a de milliardièmes de millimètres entre nous et une étoile à des centaines d'années-lumière...
Bon dimanche!
0