Liste de combinaison de p parmi n éléments
Je me suis inspiré de ceci http://www.developpez.net/forums/d42...s/#post5735783 pour la version php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?php
// construction recursive des listes possibles
function partition($index, $p, $n, $ordered, $liste) {
if ($index>=$p) {// la liste est construite -> FIN
for ($i=0;$i<count($liste);$i++) {
$res = $liste[$i];
echo " - ".$res;
}
echo"<br>";
}
// ajoute un nouvel element candidat dans la liste
// - sans ordre -> candidat: tous les elements
// - avec ordre -> candidat: seulement les elements supérieurs au précédent
$start=1;
if ($ordered && $index>0) {
$start = $liste[$index-1]+1;
}
for($i=$start;$i<=$n;$i++) {
$liste[$index] = $i;
partition($index+1, $p, $n, $ordered, $liste);
}
}
partition(0, 7, 16, true, array());
?> |
On obtient toutes les combinaisons de 7 éléments parmi 16.