Bonjour tout le monde,
Je m’arrache les cheveux sur un problème qui me semble logique mais dont je n’arrive pas à trouver une solution.
Pardon de ma bêtise et peut-être de poster ce message dans le mauvais forum.
Je cherche à trouver toutes les solutions de permutations possibles d’une série.
Pour une série de 4 chiffres : 1234, il y a 5 séries possible : 1243 / 1423 / 1432 / 1342 / 1324
Mon raisonnement est déjà bancal pour une série de 5 (je crois) mais je suis tres loin du compte pour 6 ou plus. Le nombre de solution est donc factorielle n! (nb de combinaison pour 5 chiffres : 5 * 4 * 3 * 2 = 120) (Désolé je suis nul en math)
Voilà le début de code que j’ai écris (en PHP) mais après de longues réflexions sur le papier et de nombreuse recherche sur Internet je ne trouve pas,
1/ le raisonnement pour 6 chiffres ou plus
2/ le bout de code qui viendrait me faire comprendre l’algorithme pour afficher toutes les solutions de 1 à n chiffres (en langage non objet).
Je ne fais pas varier le chiffre 1, c'est voulu, je le garde en 1ère place.
<?php
$max = 6;
$c = "";
for ($i=1;$i<=$max;$i++)
{
$point[$i] = $i;
$c = $c.$point[$i];
}
$r=0; $d[$r] = 0;
while ($d[$r] != $c)
{
for ($w=1;$w<3;$w++)
{
for ($i=1;$i<$max-1;$i++)
{
$temp = $point[$max-$i];
$point[$max-$i] = $point[$max-$i+1];
$point[$max-$i+1] = $temp;
$r++; $d[$r] = "";
for ($j=1;$j<=$max;$j++)
{
$d[$r] = $d[$r].$point[$j];
}
echo "$r : "; echo $d[$r];
echo "<br>";
}
}
}
?>
Merci de votre aide.
-----