チャレンジ
与えられたn整数の次元アレイと第一の順列n自然数、したがってアレイの寸法を並べ替えます。
詳細
この課題は、MATLABに触発されていますpermute。デモンストレーション
順列は整数のリストとして与えられます。たとえば、[1,3,2]1が1にマッピングされ、2が3にマッピングされ、3が2にマッピングされます(ここで、ithエントリは値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の文であるとして、