MathLabs

第5問

列 0,1,…,n0, 1, \ldots, n の順列 (a0,a1,…,an)(a_0, a_1, \ldots, a_n) が与えられている。aia_i と aja_j の互換は、i>0i > 0 に対して ai=0a_i = 0 であり、かつ ai−1+1=aja_{i-1} + 1 = a_j を満たすとき正当(legal)と呼ばれる。順列 (a0,a1,…,an)(a_0, a_1, \ldots, a_n) は、何回かの正当な互換の後に (1,2,…,n,0)(1, 2, \ldots, n, 0) になるとき正則(regular)と呼ばれる。順列 (1,n,n−1,…,3,2,0)(1, n, n-1, \ldots, 3, 2, 0) が正則となるような数 nn をすべて求めよ。
ステップ 5/5: 2k−12^k - 1 の形でない奇数 nn を除外し、最終的な解をまとめる
ざっくり言うと

ブロックの長さが n+1n + 1 を割り切る最大の 22 のべき乗に達すると、00 の後ろに偶数個(2b2b 個)のブロックが残ることになり、偶数の nn のときと同じ罠にはまって 00 が nn の直後に着地してしまう。

n+1=2a(2b+1) (a,b≥1)  ⟹  Pa⟶([1:2a−1],…,[N−2a:N−1],0,…)n + 1 = 2^a(2b + 1) \ (a, b \ge 1) \implies P_a \longrightarrow ([1 : 2^a-1], \ldots, [N-2^a : N-1], 0, \ldots)
詳しい解説

最後に、nn が奇数であるが 2k−12^k - 1 の形ではない場合を考える。このとき整数 a≥1a \ge 1、b≥1b \ge 1 を用いて N=n+1=2a(2b+1)N = n + 1 = 2^a(2b + 1) と表せる。2a∣N2^a \mid N であるから、同様の遷移によって P0P_0 から PaP_a に至り、そこでは (0)(0) の後ろに長さ 2a2^a のブロックが 2b2b 個([N−2a:N−1],[N−2⋅2a:N−2a−1],…,[2a:2⋅2a−1][N-2^a : N-1], [N-2 \cdot 2^a : N-2^a-1], \ldots, [2^a : 2 \cdot 2^a - 1])並ぶ。直後のパスで、00 は 2a,3⋅2a,…,(2b−1)2a=N−2⋅2a2^a, 3 \cdot 2^a, \ldots, (2b-1)2^a = N - 2 \cdot 2^a と次々に入れ替わる。ところが N−2⋅2aN - 2 \cdot 2^a は2番目のブロック [N−2⋅2a:N−2a−1][N - 2 \cdot 2^a : N - 2^a - 1] の先頭要素であるため、この互換によって 00 は最初のブロック [N−2a:N−1][N - 2^a : N - 1] の末尾要素 N−1=nN - 1 = n の直後に置かれ、整列が終わらないまま停止する。以上より、求める条件は n=2n = 2 または n=2k−1n = 2^k - 1(kk は正の整数)である。