Générer des chiffres aléatoires avec Php

Eléphanteau du PHP | 24 Messages

13 déc. 2006, 09:44

Bonjour,

Je voudrai générer et afficher des chiffres aléatoires avec Php.

Par exemple, pour générer dix chiffres entre 1 et 100, j'utilise le code suivant :
for($i=1;$i<=$10;$i++)
{
echo mt_rand(1, 100);
}
?>
Mais comment puis-je procéder pour éviter de générer des doublons ?

Merci de votre aide.

Cordialement,

I.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 déc. 2006, 09:49

Normalement, mt_rand() ne peut générer 2 fois la même valeur dans la même execution.

L'algo qu'elle utilise permet de ne quasiement jamais retomber 2 fois sur la même valeur
http://fr.wikipedia.org/wiki/Mersenne_Twister
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 1961 Messages

13 déc. 2006, 11:07

Bonjour,

Tu n'as qu'a les conserver dans un tableau et tester s'il existe.

QQ chose du style
<?php
	// Nombre de chiffres à générer
	$nbChiffres = 10;
	// Création du tableau
	$randTab = Array();
	
	for($i = 0; $i < $nbChiffres; $i++){
		// Tanque la nouvelle se trouve dans tableau
		do{
			$newRand = mt_rand(1, 100);
		}while (in_array($newRand, $randTab));
		// Ajout de la nouvelle valeur
		array_push($randTab, $newRand);
	}
	// Affichage du résultat
	foreach($randTab as $key => $value)
		echo $value . '<br />';
?>
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 24 Messages

13 déc. 2006, 19:46

Zeus et Ajoloca, merci beaucoup !

Je mets la mention "resolu" devant mon post.

Cordialement,

I.