チャレンジ
与えられたn
整数の次元アレイと第一の順列n
自然数、したがってアレイの寸法を並べ替えます。
詳細
この課題は、MATLABに触発されていますpermute
。デモンストレーション
順列は整数のリストとして与えられます。たとえば、[1,3,2]
1が1にマッピングされ、2が3にマッピングされ、3が2にマッピングされます(ここで、i
thエントリは値i
がマッピングされます)。ただし、サイクルや関数など、便利な他の形式を使用できます。より便利な場合は、0ベースのインデックスを使用することもできます。
配列は完全な「長方形」m1 x m2 x ... x mn
配列であると想定できます(つまり、不規則/ギザギザではないと仮定できます)。
n
多くの言語ではネストされた配列の次元数に制限があるため、これは大きすぎないと想定できます。
言語が多次元配列をサポートしていない場合は、配列を表す文字列を入力として使用することもできます。
例
n
恒等置換[1,2,3,...,n]
を持つ任意の- 次元配列は変更されません。[[10,20,30],[40,50,60]]
順列を持つ配列[2,1]
はにマッピングされ[[10,40],[20,50],[30,60]]
ます。[[[1,2],[3,4]],[[5,6],[7,8]]]
順列を持つ配列[2,3,1]
はにマッピングされ[[[1,3],[5,7]],[[2,4],[6,8]]]
ます。
exec
(2つのバイトを保存する)、それはPythonの2の文であるとして、