1からnまでの数字のすべての順列を辞書式順序で一覧表示するようにMatlabをプログラムしようとしています。私がこれまでに持っているものは以下の通りです。私は再帰を使用して、最初にn = 3で機能するプログラムを作成してから、任意のnでプログラムを作成するための洞察を得ることができるかどうかを確認しています。これまでのところ、n=3の6つの列のうち2つがありますP=[1 2 3;1 3 2]
。1つと2つを単純に入れ替えるには、次の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