CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP] Boucle avec mt_rand sans doublon ?

Pseudo supprimé
Pseudo supprimé 07 septembre 2012 à 12:40:41

Bonjour à tous,

J'aurais besoin d'aide pour faire un générateur de nombres sans doublon. Pour l'instant l'utilisateur peux rentrer le nombre de numéro qu'il veux générer (entre 2 et 10), mais je voudrai qu'il n'y est aucun nombre semblable.

Voici la partie php que j'ai fais pour l'instant ($choix étant la variable que l'utilisateur rentre dans le formulaire) :

if($_GET["choix"]<=10 && $_GET["choix"]>=2){

$i = 1;
$choix = $_GET["choix"];

while ($i <= $choix){

echo mt_rand(1, 70);
$i++;
}
}

slash_snakepit
slash_snakepit
Niveau 9
07 septembre 2012 à 14:14:32

tu peux stocker tes valeurs dans un tableau et à chaque tour de boucle tu vérifie qu'il n'y a aucune occurence trouvée dans le tableau.

Sinon t'as deux autres méthodes ici :

http://webdevonline.wordpress.com/2011/04/09/algorithm-generating-random-numbers-without-duplicates/

Neofungamer
Neofungamer
Niveau 22
07 septembre 2012 à 15:27:32

perso, je génère un tableau qui contient les n chiffres et je souhaite tirer m chiffres

tant que m > 0 et m > n

r = chiffre au hasard entre 0 et n
je prend le chiffre tableau[r] pour le sortir
je permute tableau[n-1] avec tableau[r]
je fais n--

fin tant que
je sors mes chiffres

Pseudo supprimé
Pseudo supprimé 07 septembre 2012 à 18:52:26

Merci pour vos réponses, j'ai réussi à faire ce que je voulais grâce à ton lien Slash_Snakepit.

Voici le résultat :

if($_GET["choix"]<=10 && $_GET["choix"]>=2){

$i = 1;
$choix = $_GET["choix"];
$num=range(1,70);
shuffle($num);

while ($i <= $choix){

echo $result[$i]=$num[$i];
$i++;
}
}

Merci encore :)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment