Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente | |||
| info:myphp:anagramme [2026/03/05 08:57] – radeff | info:myphp:anagramme [2026/03/05 09:14] (Version actuelle) – radeff | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== PHP anagramme | + | ====== PHP anagrammes et permutations |
| + | ===== anagrammes | ||
| < | < | ||
| Ligne 32: | Ligne 33: | ||
| </ | </ | ||
| </ | </ | ||
| + | </ | ||
| + | |||
| + | ===== permutations 1 ===== | ||
| + | |||
| + | < | ||
| + | <?php | ||
| + | # | ||
| + | $chaine1=" | ||
| + | $chaine2=" | ||
| + | $chaine3=" | ||
| + | $chaine4=" | ||
| + | $chaine5=" | ||
| + | $chaine6=" | ||
| + | |||
| + | // Permutation de $chaine1 avec $chaine2 | ||
| + | |||
| + | # | ||
| + | list($chaine1, | ||
| + | echo $chaine1; | ||
| + | echo $chaine2; | ||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | ===== permutations 2 ===== | ||
| + | |||
| + | |||
| + | <code php> | ||
| + | #! / | ||
| + | <? | ||
| + | ################# | ||
| + | #pour afficher les permutations d'une chaîne de caractère fournie en ligne de commande | ||
| + | #source: http:// | ||
| + | #adapted fred radeff, radeff.red 25 nov 2008 | ||
| + | ################# | ||
| + | print " | ||
| + | $name = trim(fgets(STDIN)); | ||
| + | #print "hello $name !"; | ||
| + | $test=""; | ||
| + | for($i=0; | ||
| + | #echo substr($name, | ||
| + | $test.=substr($name, | ||
| + | } | ||
| + | $test=ereg_replace("; | ||
| + | #echo " | ||
| + | |||
| + | $yourArr=explode(";", | ||
| + | |||
| + | $n=count($yourArr); | ||
| + | |||
| + | |||
| + | for ($i=0; $i <= $n; $i++) $pArr[$i]=$i; | ||
| + | |||
| + | function PrintPerm() | ||
| + | { | ||
| + | global $yourArr, | ||
| + | |||
| + | for ($i=1; $i <= $n; $i++) echo $yourArr[$pArr[$i]-1]; | ||
| + | #echo "< | ||
| + | echo " | ||
| + | |||
| + | return; | ||
| + | } | ||
| + | |||
| + | function swapThem($i, | ||
| + | { | ||
| + | global $pArr; | ||
| + | |||
| + | $temp = $pArr[$i]; | ||
| + | $pArr[$i] = $pArr[$j]; | ||
| + | $pArr[$j] = $temp; | ||
| + | } | ||
| + | |||
| + | function NextPerm() | ||
| + | { | ||
| + | global $pArr,$n; | ||
| + | |||
| + | $k = $n-1; | ||
| + | while ($pArr[$k] > $pArr[$k+1]) $k--; | ||
| + | if ($k == 0) return(0); | ||
| + | else | ||
| + | { | ||
| + | $j = $n; | ||
| + | while ($pArr[$k] > $pArr[$j]) $j--; | ||
| + | swapThem($j, | ||
| + | $r = $n; | ||
| + | $s = $k+1; | ||
| + | while ($r > $s) | ||
| + | { | ||
| + | swapThem($r, | ||
| + | $r--; | ||
| + | $s++; | ||
| + | } | ||
| + | } | ||
| + | PrintPerm(); | ||
| + | return(1); | ||
| + | } | ||
| + | |||
| + | //Print the array values | ||
| + | PrintPerm(); | ||
| + | while (NextPerm()); | ||
| + | ?> | ||
| </ | </ | ||