Jak wygenerować wszystkie możliwe kombinacje o zadnej długości z podanej w tablicy znaków?
function generujKombinacje($tablica, $dlugosc) { } generujKombinacje($tablica, 3);
function generujKombinacje($tablica, $dlugosc) { } generujKombinacje($tablica, 3);
} else { $newitems = $items; $newperms = $perms; pc_permute($newitems, $newperms); } } } pc_permute($arr);
<?php function silnia( $n ) { return !$n ? 1 : $n * silnia( $n - 1 ); } function czyJest( $kombinacje, $tmp ) { foreach( $kombinacje as $element ) { if ( $element == $tmp ) return true; } return false; } function generujKombinacje($tablica, $dlugosc) { for ( $i = 0; $i < $dlugosc; $i++ ) $arr[$i] = 0; // ilosc kombinacji wzór z Wikipedii :) $iloscKombinacji = silnia( $dlugosc + $len - 1 ) / ( silnia( $dlugosc ) * silnia( $len - 1 ) ); while ( $iloscKombinacji ) { $tmp = ''; foreach( $arr as $j ) $tmp .= $tablica[ $j ]; $tmp = str_split( $tmp ); if ( !czyJest( $kombinacje, $tmp ) ) { $kombinacje[] = $tmp; $iloscKombinacji--; } for ( $k = $dlugosc - 1; $k >= 0; $k-- ) { $arr[$k]++; if ( $arr[$k] == $len ) { $arr[$k] %= $len; } else break; } } return $kombinacje; } ?>