Комбинации

  • Автор темы Alien193
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Alien193

#1
Функция перебирает всевозможные комбинации из указанных символов в указанном диапазоне.

PHP:
function combi($w, $len, $b = '') {
if($len < 0) $len = 0;
$sl = strlen($w);
$nlen = $len - 1;
for($i = 0; $i < $sl; $i++) {
$s = substr($w, $i, 1);
if($nlen > 0) { 
$a = combi($w, $nlen, $b.$s); $c = count($a);
for($j = 0; $j < $c; $j++) { $r[] = $a[$j]; }}
else { $r[$i] = $b.$s; }}
return $r;
}
Синтаксис:
PHP:
combi(str $w, int $len);
Где $w - любые символы, $len - диапазон символов перебора комбинаций.

Пример использования:
PHP:
$ch = 'ABCD';
$len = 2;

$a = combi($ch, $len);

echo "Всего комбинаций: <b>".count($a)."</b>";
echo "<pre>";
print_r($a);
echo "</pre>"
Выведет:
Всего комбинаций: 16

Array
(

[0] => AA
[1] => AB
[2] => AC
[3] => AD
[4] => BA
[5] => BB
[6] => BC
[7] => BD
[8] => CA
[9] => CB
[10] => CC
[11] => CD
[12] => DA
[13] => DB
[14] => DC
[15] => DD
)
 
Статус
Закрыто для дальнейших ответов.