27-01-2009, 09:54 AM
gameprog2 -> Je ne suis pas d'accord, ce sont 3 algorithmes différents !
Qu'ils utilisent le mot Algorithme en parlant de sa retranscryption en un langage (ici PHP) n'est pas si grave car on comprend très bien.
Il ne connait pas l'algorithmie alors il utilise ce langage pour la réprésenter, ce qui est, je pense, valable et compréhensible.
Argorate -> Il existe encore surement des centaines de méthodes plus ou moins dérivés de celles-là mais elles restent les plus efficaces.
Par contre dans ta méthode 1, je ne vois pas pourquoi tu conserves le nombre tiré si tu le supprime de ton tableau. Je ne vois pas non plus pourquoi 2 boucles...
Ton:
$rand = mt_rand(1, count($dispo));
Est très mal placé !
Voici une version correcte de cette méthode:
Qu'ils utilisent le mot Algorithme en parlant de sa retranscryption en un langage (ici PHP) n'est pas si grave car on comprend très bien.
Il ne connait pas l'algorithmie alors il utilise ce langage pour la réprésenter, ce qui est, je pense, valable et compréhensible.
Argorate -> Il existe encore surement des centaines de méthodes plus ou moins dérivés de celles-là mais elles restent les plus efficaces.
Par contre dans ta méthode 1, je ne vois pas pourquoi tu conserves le nombre tiré si tu le supprime de ton tableau. Je ne vois pas non plus pourquoi 2 boucles...
Ton:
$rand = mt_rand(1, count($dispo));
Est très mal placé !
Voici une version correcte de cette méthode:
Code PHP :
<?php
$NbDispo = range(1, 30); // tableau de toutes les valeurs possibles
$NbTires = array();
for( $i=1; $i<=20; $i++) {
$a = array_rand($NbDispo);
$NbTires[] = $a;
unset($NbDispo[array_search($a, $NbDispo)]);
}
Mais Perso, j'aurais plutot utilisé cette méthode
Code PHP :
<?php
$NbDispo = range(1, 30); // tableau de toutes les valeurs possibles
$NbTires = array_rand($NbDispo, 20); //On tire 20 nombres aléatoirement