Я пытаюсь запрограммировать Matlab, чтобы перечислить все перестановки чисел от 1 до n в лексикографическом порядке. То, что у меня есть, ниже. Я использую рекурсию, чтобы попытаться сначала написать программу, которая будет работать для n = 3, а затем посмотреть, смогу ли я получить представление о написании программы для любого n. Пока у меня есть 2 из 6 столбцов для n = 3: P=[1 2 3;1 3 2]
. Мне нужны следующие два столбца, чтобы просто поменять местами единицы и двойки. Я не знаю, с чего начать.
function [P] = shoes(n)
if n == 1
P = 1;
elseif n == 2
P = [1 2; 2 1];
else
T = shoes(n-1) + 1;
G = ones(factorial(n-1),1);
P(1:2,1:3) = [G T];
end