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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Générer des chiffres aléatoires avec Php

par iptima » 13 déc. 2006, 19:46

Zeus et Ajoloca, merci beaucoup !

Je mets la mention "resolu" devant mon post.

Cordialement,

I.

par Ajoloca » 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 />';
?>

par zeus » 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

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

par iptima » 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.