{% else-1 %}
Пример работы скрипта:

abcdef
abcdfe
abcedf
abcefd
abcfde
abcfed
abdcef
abdcfe и т.д.
(c) Okula

                        
/**
* Генерация всех возможных перестановок
*
* @param array $newarr заполняемый массив
* @param string $string исходная строка
* @param string $prefix перфикс
*/
function variant(array &$newarr, $string, $prefix='') {
if(empty($string)) {
$newarr[] = $prefix;
return;
}

$len = mb_strlen($string, 'utf-8');
for($i=0; $i<$len; $i++) {
$string_array = str_split($string);
if(isset($string_array[$i])) unset($string_array[$i]);
variant($newarr, implode('', $string_array), $prefix.$string{$i});
}
}

#-------------------------#

$string = 'abcdef';
$arr = array();

variant($arr, $string);
var_dump($arr);
1 42 0
0

Нет фото
• 27 апр 2014, 23:49


Комбинаторные задачи