Générer des nombres aléatoires différents des précédents
Posté : 11 oct. 2010, 15:31
Bonjour à tous,
J'essaie de générer des séries de nombres aléatoires compris dans un certain intervalle. Jusque là, rien de compliqué.
Il faut que j'applique une condition aux nombres générés : il doivent être différents des précédents.
Par exemple (5 nombres compris entre 1 et 50, différents entre eux):
7 - 45 - 21 - 20 - 38 -> bon
12 - 19 - 45 - 12 - 39 -> pas bon
J'ai essayé comme ceci (mais je ne teste la valeur qu'une fois et génère un nouveau nombre le cas échéant; il faudrait générer un nombre jusqu'à en obtenir un qui n'est pas encore dans notre tableau) :
Merci d'avance.
J'essaie de générer des séries de nombres aléatoires compris dans un certain intervalle. Jusque là, rien de compliqué.
Il faut que j'applique une condition aux nombres générés : il doivent être différents des précédents.
Par exemple (5 nombres compris entre 1 et 50, différents entre eux):
7 - 45 - 21 - 20 - 38 -> bon
12 - 19 - 45 - 12 - 39 -> pas bon
J'ai essayé comme ceci (mais je ne teste la valeur qu'une fois et génère un nouveau nombre le cas échéant; il faudrait générer un nombre jusqu'à en obtenir un qui n'est pas encore dans notre tableau) :
<?php
$suite = array();
for ($i = 1; $i <= 5; $i++)
{
$number = mt_rand(1, 50);
if (in_array($number, $suite))
{
$newNumber = mt_rand(1, 50);
if ($newNumber == $number)
{
$number = mt_rand(1, 50);
}
$number = $newNumber;
}
$suite[$i] = $number;
echo "$number <br/>\n";
}
Auriez-vous une idée de solution ?Merci d'avance.