0
Le code ci-dessous produit 3 aléatoires aucun numéro de répétition sur 15.PHP: nombres aléatoires, aucun double, aucun précédent numéro suivant et
function num($min, $max, $count){
$count = abs((int)$count);
if($min > $max){
list($min, $max) = array($max, $min);
}
$u = abs($max - $min);
if($count > $u)$count = $u;
$numresult = range($min, $max);
shuffle($numresult);
return array_slice($numresult, 0, $count);
}
foreach(num(1, 15, 3) as $rnum){
echo $rnum, ' ';
}
Est-il possible d'exclure aussi le précédent et le numéro suivant lorsque un choix aléatoire se produit? Par exemple: Si le premier nombre sélectionné est 7, alors 6, 7 et 8 doivent être exclus pour les deux choix suivants. Actuellement, seulement 7 est exclu.
Bon c'est génial! Et cela fonctionne hors de la boîte. Merci beaucoup! –
En règle générale, pour vous assurer que cela fonctionne, vous devriez avoir vos arguments tels que '$ max- $ min> ($ margin * 2 + 1) * $ count'. Cela garantira que, quel que soit le résultat, il sera en mesure de vous donner un résultat à chaque fois. Dans ce cas particulier, '14> 9' vous allez bien. –