Рубрики

Программа PHP для печати всех перестановок данной строки

Перестановка, также называемая «номером расположения» или «порядком», представляет собой перестановку элементов упорядоченного списка S в соответствие один к одному с самим S. Строка длиной n имеет n! перестановка.
Источник: Mathword ( http://mathworld.wolfram.com/Permutation.html )

Ниже приведены перестановки строки ABC.
ABC ACB BAC BCA CBA CAB

<?php
// PHP программа для печати всего
// перестановки данной строки.

  

  
/ **
* перестановочная функция
* @param str строка для
* рассчитать перестановку для
* @param l начальный индекс
* @param r end index
* /

function permute($str, $l, $r)

{

    if ($l == $r)

        echo $str. "\n";

    else

    {

        for ($i = $l; $i <= $r; $i++)

        {

            $str = swap($str, $l, $i);

            permute($str, $l + 1, $r);

            $str = swap($str, $l, $i);

        }

    }

}

  
/ **
* Обмен персонажей на позиции
* @param строковое значение
* @param I позиция 1
* @парам j позиция 2
* @return поменялась строка
* /

function swap($a, $i, $j)

{

    $temp;

    $charArray = str_split($a);

    $temp = $charArray[$i] ;

    $charArray[$i] = $charArray[$j];

    $charArray[$j] = $temp;

    return implode($charArray);

}

  
// Код драйвера

$str = "ABC";

$n = strlen($str);

permute($str, 0, $n - 1);

  
// Этот код предоставлен mits.
?>

Выход:

ABC
ACB
BAC
BCA
CBA
CAB

Пожалуйста, обратитесь к полной статье на Написать программу для печати всех перестановок данной строки для более подробной информации!

Рекомендуемые посты:

Программа PHP для печати всех перестановок данной строки

0.00 (0%) 0 votes