Генерация вариантов

Тема в разделе "Как сделать...", создана пользователем LEXAlForpostl, 21 июл 2012.

  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Здравствуйте.
    Есть массив
    $a[0]=array (1,2);
    $a[1]=array (3,4,5);
    Необходимо получить следующие варианты:
    2 1
    3 4 5
    ---
    2 1
    4 5 3
    ---
    2 1
    5 3 4
    ---
    1 2
    3 4 5
    ---
    1 2
    4 3 5
    ---
    1 2
    5 3 4

    Главной задачей, чтобы на 1м месте в каждом из массивов $a побывали все элементы. Но самое главное, чтобы это было реализовано для каждого элемента из другого массива $a.
    Размерность $a n-элементов. Для примера взял 2.
    Функция для перемещение элементов одномерного массива на первое место поочередно:

    Код:
    function moving ($arr)
    {
    for ($i=1,$c=count($arr);$i<$c;$i++)
    {
        $t=$arr[0];
        $arr[0]=$arr[$i];
        $arr[$i]=$t;
    }
    }
     
    Iwashka нравится это.
  2. Rigor

    Rigor

    Регистр.:
    1 июн 2008
    Сообщения:
    202
    Симпатии:
    33
    Вам нужно гуглить на тему генераций перестановок. Вот пример кода на паскале
     
    Iwashka и LEXAlForpostl нравится это.