\(a_i\neq i\:\:(1\leq i\leq n)\)
を満たす順列です。攪乱(かくらん)順列(derangement)とも呼ばれます。順列の総数に対する完全順列の割合は、\(n\) が増えるに従って極限値の、
\(\dfrac{1}{e}=0.3678794411\cdots\)
に急速に近づき、\(n=6\) 以降では \(\fallingdotseq0.368\) と見なせます。つまり、完全順列の割合は "ほぼ一定" です。このことを No.376 では「くじ引きによる席替え」を例に説明したのですが、この割合に自然対数の底 \(e\) が現れるのに加えて、"ほぼ一定" というところが少々直感に反する結果なのでした。ところで、完全順列を一般化して言うと、
\(1\) ~ \(n\) の数字の順列(総数 \(n!\))の中で、ある特定の条件を満たす順列
です。この「特定の条件を満たす順列」の別の例として、今回は「交代順列」を取り上げます。これは「ジグザグ順列」とも呼ばれます。
交代順列(Alternating Permutation)
\(1\) ~ \(n\) の \(n\) 個の数字(\(2\leq n\))の集合を \(\{\:a_i\:|\:1\leq i\leq n\:\}\)で表し、順列を
\(a_1,\:a_2,\:a_3,\:\cdots\:,\:a_n\)
とします。交代順列とは、
交代順列 : \(a_1 < a_2 > a_3 < a_4 > a_5 < \:\cdots\)
というように、\(a_1 < a_2\) から始まって数字の増加と減少を "交互に"(= Alternating\(,\) =ジグザクに)繰り返す順列です。\(n=2,\:3,\:4\) の場合の例をあげると、
\(n=2\)
\(1,\:2\)
\(n=3\)
\(1,\:3,\:2\)
\(2,\:3,\:1\)
\(n=4\)
\(1,\:3,\:2,\:4\)
\(1,\:4,\:2,\:3\)
\(2,\:3,\:1,\:4\)
\(2,\:4,\:1,\:3\)
\(3,\:4,\:1,\:2\)
というようになります。Wikipedia には \(n=5\) の場合を図示した分かりやすい図があります。これを見ると「ジグザク順列」のイメージがリアルに分かります。
交代順列 \(n=5\) |
\(n=5\) の交代順列は \(16\)種類ある。これと同数の逆交代順列がある。すべての順列の数は \(5!=120\) である。Wikipedia より |
また、\(a_1 > a_2\) から始まって減少と増加を繰り返す順列を「逆交代順列」と定義します。
逆交代順列 : \(a_1 > a_2 < a_3 > a_4 < a_5 > \) ..
です。\(n=2,\:3,\:4\) の例をあげると、
\(n=2\)
\(2,\:1\)
\(n=3\)
\(3,\:1,\:2\)
\(2,\:1,\:3\)
\(n=4\)
\(4,\:2,\:3,\:1\)
\(4,\:1,\:3,\:2\)
\(3,\:2,\:4,\:1\)
\(3,\:1,\:4,\:2\)
\(2,\:1,\:4,\:3\)
です(なお、交代順列と逆交代順列は、全く逆の定義をする人もいます)。これらの交代順列と逆交代順列を合わせて「広義交代順列」と定義します(この記事での用語です)。つまり、
\(a_1 < a_2\) か \(a_1 > a_2\) かはともかく、増減を交互に繰り返す順列 |
です。以上の順列は次の性質をもちます。
交代順列と逆交代順列の数は等しい
\(1\) ~ \(n\) の数字から成る交代順列
\(a_1 < a_2 > a_3 < a_4 > a_5 < \:\cdots\:a_n\)
に対して、\((n+1-a_i)\) の順列を作ると、\(1\leq(n+1-a_i)\leq n\) であり、
\((n+1-a_1) > (n+1-a_2) < (n+1-a_3) > \:\cdots\)
という逆交代順列になります。この逆も可能で、一つの逆交代順列から交代順列を作り出せます。つまり交代順列と逆交代順列は1対1に対応しているので、その数は等しい。そこで
\(1\) ~ \(n\) の交代順列の数 =\(1\) ~ \(n\) の逆交代順列の数 =\(A_n\) |
と書くことにします。上に挙げた例では、
\(A_2=1\)
\(A_3=2\)
\(A_4=5\)
\(A_5=16\)
です。この記法を使うと、
\(1\) ~ \(n\) の「広義交代順列」の数=\(2A_n\)
です。
先頭と末尾
順列 \(a_1,\:a_2,\:\cdots\:,\:a_{n-1},\:a_n\) が交代順列であれば、その定義から次の性質をもちます。
\(n\) が先頭にくることはない(\(a_1\neq n\)) | |
\(n\) が偶数のときは増加で終わる(\(a_{n-1} < a_n\)) | |
\(n\) が奇数のときは減少で終わる(\(a_{n-1} > a_n\))。\(n\) が末尾になることはない(\(a_n\neq n\))。 |
また、逆交代順列であれば次の性質をもちます。
\(1\) が先頭にくることはない(\(a_1\neq1\)) | |
\(n\) が偶数のときは減少で終わる(\(a_{n-1} > a_n\))。\(n\) が末尾になることはない(\(a_n\neq n\))。 | |
\(n\) が奇数のときは増加で終わる(\(a_{n-1} < a_n\)) |
一方、「広義交代順列」においては、\(n\) は先頭にも末尾にもなりうるし、順列の最後は増加・減少の両方があり得ます。
交代順列の個数 \(A_n\) を求める
\(A_n\) を求めるための漸化式を作ります。以下、漸化式を求めやすくするために \(n+1\) 個の数字から成る「広義交代順列の数」を調べます。いま、\(1\) ~ \(n+1\) の数字からなる「広義交代順列」、
\(a_1,\:a_2,\:a_3,\:\cdots\:,\:a_n,\:a_{n+1}\)
があるとします。その総数は \(2A_{n+1}\) です。順列の中の数字 \(n+1\) の位置に注目し、\(k\) 番目に \(n+1\) がある場合(\(a_k=n+1\))を考えます。「広義交代順列」なので、\(k\) は \(1\) ~ \(n+1\) のすべての可能性があります。そうすると \(a_k\) が最大値なので、交代順列・逆交代順列の定義から、
\(a_{k-1} < a_k > a_{k+1}\)
\((\textbf{A})\)
が必ず成り立ちます。いま、最大値の \(a_k\) を取り外し、\(a_k\) の前方と後方とで順列を2つに分け、
前順列:\(a_1,\:a_2,\:\cdots\:,\:a_{k-2},\:a_{k-1}\)
後順列:\(a_{k+1},\:a_{k+2},\:\cdots\:,\:a_n,\:a_{n+1}\)
とします。前順列も後順列も「広義交代順列」であり、そこに現れる数字の総数は合わせて \(n\) 個です。前順列も後順列も長さは \(n\) 以下で、そのバリエーションの数は \(A_i\:(i\leq n)\) で表現できるはずです。これを利用して漸化式を作ります。
前順列にある \(k-1\) 個の数字は、その選び方が \({}_{n}\mathrm{C}_{k-1}\) 通りあります。交代順列・逆交代順列の定義と \((\textbf{A})\) から必然的に、
\(a_{k-2} > a_{k-1}\)
ですが、\(k-1\) が奇数の場合、こうなるのは前順列が交代順列のときであり、その数は \(A_{k-1}\) です。一方、\(k-1\) が偶数の場合にこうなるのは前順列が逆交代順列のときで、その数は \(A_{k-1}\) です。いずれにせよ、前順列には \(A_{k-1}\) のバリエーションがあります。
前順列に属する \(k-1\) 個の数字を選ぶと、後順列に属する \(n+1-k\) 個の数字は一意に決まります。また後順列は、定義と \((\textbf{A})\) から、
\(a_{k+1} < a_{k+2}\)
です。つまり後順列は交代順列であり、\(A_{n+1-k}\) のバリエーションがあります。以上をまとめると、\(a_k=n+1\) という条件に合致する「広義交代順列」の数(\(K_{n+1,\:k}\) と記述)は、
\(K_{n+1,\:k}={}_{n}\mathrm{C}_{k-1}\cdot A_{k-1}\cdot A_{n+1-k}\)
(\(2\leq n,\:\:1\leq k\leq n+1\))
です。通常の組み合わせ記号の約束どおり、\({}_{n}\mathrm{C}_{0}=1\) です。また便宜上 \(A(0)=A(1)=1\) と決めておきます。この式で、\(k\) は \(1\) ~ \(n+1\) をとり、\(k\) が違えば全く別の順列なので、「広義交代順列」の総数 \(2A_{n+1}\) を求めるには \(k\) で合算すればよく、
\(2A_{n+1}\) | \(=\displaystyle\sum_{k=1}^{n+1}K_{n+1,\:k}\) | |
\(=\)\(\displaystyle\sum_{k=1}^{n+1}{}_{n}\mathrm{C}_{k-1}\cdot\)\( A_{k-1}\cdot\)\( A_{n+1-k}\) |
ですが、この式から、
\(\dfrac{1}{2}\displaystyle\sum_{k=1}^{n+1}{}_{n}\mathrm{C}_{k-1}\cdot\)\( A_{k-1}\cdot\)\( A_{n+1-k}\) |
となります。ここで \(k\) の範囲を \(1\) ~ \(n+1\) から \(0\) ~ \(n\) に変更すると、
\(A_{n+1}=\)\(\dfrac{1}{2}\displaystyle\sum_{k=0}^{n}{}_{n}\mathrm{C}_{k}\cdot\)\( A_k\cdot\)\( A_{n-k}\)
\((\textbf{B})\)
となります。この \((\textbf{B})\) が交代順列の数を求める漸化式です。\((\textbf{B})\) 式に従って \(A_2,\:A_3,\:A_4,\:A_5\) を順に求めてみると、
\(A_2\) | \(=\dfrac{1}{2}(\) | \({}_{1}\mathrm{C}_{0}\cdot A_0\cdot A_1+{}_{1}\mathrm{C}_{1}\cdot A(1)\cdot A(0))=1\) | |
\(A_3\) | \(=\dfrac{1}{2}(\) | \({}_{2}\mathrm{C}_{0}\cdot A_0\cdot A_2+{}_{2}\mathrm{C}_{1}\cdot A_1\cdot A_1+\) | |
\({}_{2}\mathrm{C}_{2}\cdot A_2\cdot A_0)\) | |||
\(=\dfrac{1}{2}(\) | \(1+2+1)=2\) | ||
\(A_4\) | \(=\dfrac{1}{2}(\) | \({}_{3}\mathrm{C}_{0}\cdot A_0\cdot A_3+{}_{3}\mathrm{C}_{1}\cdot A_1\cdot A_2+\) | |
\({}_{3}\mathrm{C}_{2}\cdot A_2\cdot A_1+{}_{3}\mathrm{C}_{3}\cdot A_3\cdot A_0)\) | |||
\(=\dfrac{1}{2}(\) | \(2+3+3+2)=5\) | ||
\(A_5\) | \(=\dfrac{1}{2}(\) | \({}_{4}\mathrm{C}_{0}\cdot A_0\cdot A_4+{}_{4}\mathrm{C}_{1}\cdot A_1\cdot A_3+\) | |
\({}_{4}\mathrm{C}_{2}\cdot A_2\cdot A_2+{}_{4}\mathrm{C}_{3}\cdot A_3\cdot A_1+\) | |||
\({}_{4}\mathrm{C}_{4}\cdot A_4\cdot A_0)\) | |||
\(=\dfrac{1}{2}(\) | \(5+8+6+8+5)=16\) |
となり、最初に例示した値と一致します。\(A_0=A_1=1\) と決めたことで、\(A_2=1,\:A_3=2\) が漸化式を使って正しく計算できました。
\(A_n\) の計算
\(n=10\) 以下で \(A_n\) を計算してみます。\(A_n\) と、順列の総数 \(n!\) に対する \(A_n\) の割合を示したのが次の表です。
\(0\) | \(1\) | \(1\) | |
\(1\) | \(1\) | \(1\) | |
\(2\) | \(1\) | \(2\) | \(0.50000\) |
\(3\) | \(2\) | \(6\) | \(0.33333\) |
\(4\) | \(5\) | \(24\) | \(0.20833\) |
\(5\) | \(16\) | \(120\) | \(0.13333\) |
\(6\) | \(61\) | \(720\) | \(0.08472\) |
\(7\) | \(272\) | \(5040\) | \(0.05397\) |
\(8\) | \(1385\) | \(40320\) | \(0.03435\) |
\(9\) | \(7936\) | \(362880\) | \(0.02187\) |
\(10\) | \(50521\) | \(3628800\) | \(0.01392\) |
\(n\) が増えるに従って \(A_n\) は急激に増大しますが、順列の一部なのでそうなるだろうと予測できます。また、\(A_n\) の \(n!\) に対する比率は減少していきますが、規則正しく最後まで増減を繰り返すという順列は、\(n\) が大きくなるにつれてその割合が希になっていくだろうと予想され、これも直感と合っています。
交代順列と三角関数の関係
実は、交代順列は三角関数と深く関係していることが知られていて、ここが興味深いところです。そのことを示すため、\(A_n\) を係数にもつ "べき級数 \(f(x)\)" を次のように定義します。
\(f(x)=A_0+A_1x+\dfrac{A_2}{2!}x^2+\:\cdots\:+\dfrac{A_k}{k!}x^k+\:\cdots\)
\((\textbf{C})\)
このような形で定義された \(f(x)\) を一般に、\(A_n\) の母関数(指数型母関数)と呼びます。母関数とは、数列 \(a_n\) に関係した係数をもつ「形式的べき級数」のことで、係数が \(\dfrac{a_n}{n!}\) の場合が "指数型母関数" です。"形式的" というのは、この定義でべき級数が収束するかどうか(=関数としての定義を成しているのかどうか)が分からないからです。しかし、\((\textbf{C})\) 式の \(f(x)\) は収束します。つまり、等比数列の和を使うと一般に、、
\(g(x)\) | \(=1+x+x^2+\:\cdots\:x^k\) | |
\(=\dfrac{1-x^{k+1}}{1-x}\) |
ですが、\(|x| < 1\) なら、
\(g(x)\rightarrow\dfrac{1}{1-x}\:\:(k\rightarrow\infty)\)
です。\(f(x)\) の係数は、\(A_k < k!\) であり、すべての係数の絶対値は \(g(x)\) の係数 \(=\:1\) 以下なので、\(x\) を適切にとれば \(f(x)\) も収束します。以上を前提に、\(f(x)\) の性質を調べます。そのため、新たに数列 \(B_n\) を、
\(B_k=\dfrac{A_k}{k!}\)
\(B_0=1,\:\:B_1=1\)
と定義します。すると、
\(f(x)=B_0+B_1x+B_2x^2+\:\cdots\:+B_kx^k+\:\cdots\)
\((\textbf{D})\)
と書けます。この \(B_k\) が満たすべき漸化式を調べるため、
\(\dfrac{1}{2}\displaystyle\sum_{k=0}^{n}{}_{n}\mathrm{C}_{k}\cdot\)\( A_k\cdot\)\( A_{n-k}\) |
の式に \(A_k=k!\:B_k,\:\:{}_{n}\mathrm{C}_{k}=\dfrac{n!}{k!\cdot(n-k)!}\)を代入すると、
\((n+1)!\:B_{n+1}\)
\(=\dfrac{1}{2}\displaystyle\sum_{k=0}^{n}\dfrac{n!}{k!\cdot(n-k)!}\cdot k!B_k\cdot(n-k)!B_{n-k}\)
\(=\dfrac{1}{2}\displaystyle\sum_{k=0}^{n}n!B_k\cdot B_{n-k}\)
\(2(n+1)B_{n+1}=\displaystyle\sum_{k=0}^{n}B_k\cdot B_{n-k}\)
\((\textbf{E})\)
となり、\(B_n\) が満たすべき漸化式は \((\textbf{E})\) 式です。この \((\textbf{E})\) 式をよく見ると、右辺は \((\textbf{D})\) 式の右辺を2乗したときの係数になっています。そこで \((\textbf{D})\) 式の2乗を計算すると、
\(f(x)^2\)
\(=\) | \((B_0+B_1x+B_2x^2+\cdots+B_kx^k+\cdots)^2\) | ||
\(=\) | \(B_0^2+\) | ||
\((B_0B_1+B_1B_0)\)\(x+\) | |||
\((B_0B_2+B_1B_1+B_2B_0)\)\(x^2+\) | |||
\((B_0B_3+B_1B_2+B_2B_1+B_3B_0)\)\(x^3+\) | |||
\(\vdots\) | |||
\((B_0B_k+B_1B_{k-1}+\cdots+B_{k-1}B_1+B_kB_0)\)\(x^k+\) | |||
\(\vdots\) |
となりますが、これに \((\textbf{E})\) 式を代入すると、
\(f(x)^2=\)\(B_0^2+\)\(2(2B_2x+\)\(3B_3x^2+\)\(\cdots+\)\((k+\)\(1)B_{k+1}x^k+\)\(\cdots)\)
\((\textbf{F})\)
が得られます。さらに、この \((\textbf{F})\) 式の右辺の括弧の中を観察すると、それらは \(f(x)\) を微分したときに現れる形です。つまり、
\(f\,'(x)=\)\(B_1+\)\(2B_2x+\)\(3B_3x^2+\)\(\cdots+\)\((k+1)B_{k+1}x^k+\)\(\cdots\)
\((\textbf{G})\)
の第2項以下です。そこで、\((\textbf{F})\) 式 と \((\textbf{G})\) 式 を合わせると、
\(f(x)^2=B_0^2+2(f\,'(x)-B_1)\)
となり、\(B_0=1,\:\:B_1=1\) を入れて整理すると、
\(2f\,'(x)=f(x)^2+1\)
\((\textbf{H})\)
が得られました。\(A_n\) から作られたべき級数 \(f(x)\) は、この微分方程式 \((\textbf{H})\) を満たす関数です。\(y=f(x)\) とおくと、
\(2\dfrac{dy}{dx}=y^2+1\)
ですが、これは、
\(\dfrac{1}{y^2+1}\dfrac{dy}{dx}=\dfrac{1}{2}\)
\((\textbf{I})\)
書き直すことができます。この式を見ると、タンジェント(\(\mathrm{tan}x\))の逆関数であるアークタンジェント(\(\mathrm{tan}^{-1}\))の微分の形をしています。つまり、
\(y=\mathrm{tan}x\)
を微分すると、
\(\dfrac{dy}{dx}\) | \(=\dfrac{d}{dx}\left(\dfrac{\mathrm{sin}x}{\mathrm{cos}x}\right)\) | |
\(=\dfrac{\mathrm{cos}x\cdot\mathrm{cos}x-\mathrm{sin}x(-\mathrm{sin}x)}{\mathrm{cos}^2x}\) | ||
\(=\dfrac{\mathrm{cos}^2x+\mathrm{sin}^2x}{\mathrm{cos}^2x}=1+\dfrac{\mathrm{sin}^2x}{\mathrm{cos}^2x}\) | ||
\(=1+\mathrm{tan}^2x=1+y^2\) |
であり、ここから
\(\dfrac{dx}{dy}=\dfrac{1}{1+y^2}\)
が求まります。逆関数は \(x=\mathrm{tan}^{-1}y\) なので、上式の右辺は \(\mathrm{tan}^{-1}y\) の微分です。これを踏まえて \((\textbf{I})\) 式の両辺を \(x\) で積分すると、積分定数を \(C\) として、
\(\displaystyle\int_{}^{}\dfrac{1}{y^2+1}\dfrac{dy}{dx}dx=\displaystyle\int_{}^{}\:\:\dfrac{1}{2}dx\)
\(\displaystyle\int_{}^{}\dfrac{1}{y^2+1}dy=\displaystyle\int_{}^{}\:\:\dfrac{1}{2}dx\)
\(\mathrm{tan}^{-1}y=\dfrac{1}{2}x+C\)
\(y=\mathrm{tan}\left(\dfrac{1}{2}x+C\right)\)
となり、つまり、
\(f(x)=\mathrm{tan}\left(\dfrac{1}{2}x+C\right)\)
と \(f(x)\) が求まりました。ここで、\(f(0)=A_0=1\) から \(C\) を求めると、
\(\mathrm{tan}\:C=1\)
\(\longrightarrow\:C=\dfrac{\pi}{4}\)
であり、
\(f(x)=\mathrm{tan}\left(\dfrac{1}{2}x+\dfrac{\pi}{4}\right)\)
です。ここからさらに、三角関数の加法定理と倍角の公式を使って変形していきます。使う定理と公式は、
\(\mathrm{tan}(\alpha+\beta)=\dfrac{\mathrm{tan}\alpha+\mathrm{tan}\beta}{1-\mathrm{tan}\alpha\:\mathrm{tan}\beta}\)
\(\mathrm{sin}2\alpha=2\:\mathrm{sin}\alpha\:\mathrm{cos}\alpha\)
\(\mathrm{cos}2\alpha=\mathrm{cos}^2\alpha-\mathrm{sin}^2\alpha\)
です。この式で \(\alpha=\dfrac{1}{2}x,\:\:\beta=\dfrac{\pi}{4}\) とおくと、\(\mathrm{tan}\beta=1\) です。従って \(f(x)\) は、
\(f(x)\) | \(=\mathrm{tan}\left(\dfrac{1}{2}x+\dfrac{\pi}{4}\right)\) | |
\(=\mathrm{tan}(\alpha+\beta)=\dfrac{\mathrm{tan}\alpha+1}{1-\mathrm{tan}\alpha}\) | ||
\(=\dfrac{\mathrm{sin}\alpha+\mathrm{cos}\alpha}{\mathrm{cos}\alpha-\mathrm{sin}\alpha}=\dfrac{(\mathrm{sin}\alpha+\mathrm{cos}\alpha)^2}{\mathrm{cos}^2\alpha-\mathrm{sin}^2\alpha}\) | ||
\(=\dfrac{1+2\:\mathrm{sin}\alpha\:\mathrm{cos}\alpha}{\mathrm{cos}2\alpha}=\dfrac{1+\mathrm{sin}2\alpha}{\mathrm{cos}2\alpha}\) | ||
\(=\dfrac{1+\mathrm{sin}x}{\mathrm{cos}x}=\mathrm{tan}x+\dfrac{1}{\mathrm{cos}x}\) |
つまり、
\(f(x)=\mathrm{tan}x+\mathrm{sec}x\)
\((\textbf{J})\)
と簡略化できます。\(\mathrm{sec}\)(secant セカント)は、高校数学ではあまり出てきませんが、\(\mathrm{cos}\) の逆数です。この \((\textbf{J})\) 式は、
交代順列の数を示す数列 \(A_n\) から作られたべき級数は、実は三角関数であって、しかも \(\mathrm{tan}\) と \(\mathrm{sec}\)(\(=1/\mathrm{cos}\))という、2つの三角関数の混合物(加算したもの)である |
という、意外な結論を示しています。
タンジェント数とセカント数
「意外な結論」を数列で確認します。\(\mathrm{tan}x\) をべき級数に展開したときの係数を、\(T_n\) と書き、タンジェント数と呼びます。
\(\mathrm{tan}x=\displaystyle\sum_{n=0}^{\infty}\dfrac{T_n}{n!}x^n\)
\((\textbf{K})\)
です。\(f(x)=\mathrm{tan}x\) とすると、\(T_n=f^{(n)}(0)\) です。つまり、\(\mathrm{tan}x\) の \(n\)階導関数に \(x=0\) を代入すると \(T_n\) が求まります。\(\mathrm{tan}x\) は奇関数(\(\mathrm{tan}(-x)=-\mathrm{tan}x\))です。ということは、\(k\) を \(0\) 以上の整数とするとき、
\(T_{2k}=0\:\:(0\leq k)\)
\((\textbf{K}\,')\)
です。同様に、\(\mathrm{sec}x\) をべき級数に展開したときの係数を \(S_n\) と書き、セカント数と呼びます。
\(\mathrm{sec}x=\displaystyle\sum_{n=0}^{\infty}\dfrac{S_n}{n!}x^n\)
\((\textbf{L})\)
です。\(\mathrm{sec}x\)(= \(1/\mathrm{cos}x\))は偶関数なので、\(n\) が奇数のとき \(S_n=0\) です。つまり、
\(S_{2k+1}=0\:\:(0\leq k)\)
\((\textbf{L}\,')\)
です。\(A_n\) を係数にもつ "べき級数" \((\textbf{C})\) と、\((\textbf{K})\:/\:(\textbf{K}\,')\)、\((\textbf{L})\:/\:(\textbf{L}\,')\) から得られる結論は、
\(A_n=\left\{
\begin{array}{l}
\begin{eqnarray}
&&S_n\:\:(n=2k)&\\
&&\phantom{T_n\:\:(n=2k+1)}\:\:\:\:(0\leq k)&\\
&&T_n\:\:(n=2k+1)&\\
\end{eqnarray}
\end{array}\right.\)
\begin{array}{l}
\begin{eqnarray}
&&S_n\:\:(n=2k)&\\
&&\phantom{T_n\:\:(n=2k+1)}\:\:\:\:(0\leq k)&\\
&&T_n\:\:(n=2k+1)&\\
\end{eqnarray}
\end{array}\right.\)
となります。つまり、セカント数とタンジェント数を交互に並べたのが、交代順列の数を表す数列 \(\boldsymbol{A_n}\) です。実際にパソコンをつかって使って Python で計算してみると次のようになります。コードと実行結果を掲げます。
import math import sympy as sy x = sy.symbols('x') N = 16 # # Alternating Permutaion Number # alt = [1, 1] for n in range(2, N): next = 1 for k in range(1, n+1): next += math.comb(n-1,k-1)*alt[k-1]*alt[n-k] alt.append(next//2) # # Tangent & Secant Number # tan = [int(sy.tan(0))] # tan = [0] sec = [int(sy.sec(0))] # sec = [1] dt = sy.tan(x) ds = sy.sec(x) for _ in range(1, N): dt = sy.diff(dt) # diff() : 微分 tan.append(int(dt.subs([(x,0)]))) # x=0 を代入し追加 ds = sy.diff(ds) sec.append(int(ds.subs([(x,0)]))) # # Output # print(' n alt.number tan.number sec.number') for n in range(N): print(f'{n:2d}{alt[n]:12d}{tan[n]:12d}{sec[n]:12d}') |
実行結果
n alt.number tan.number sec.number 0 1 0 1 1 1 1 0 2 1 0 1 3 2 2 0 4 5 0 5 5 16 16 0 6 61 0 61 7 272 272 0 8 1385 0 1385 9 7936 7936 0 10 50521 0 50521 11 353792 353792 0 12 2702765 0 2702765 13 22368256 22368256 0 14 199360981 0 199360981 15 1903757312 1903757312 0 |
この表をみると、交代順列の数を示す数列 \(A_n\) がタンジェント数とセカント数の "混合物" であることがよく分かります。
ここで示したコードの前半は、math.comb(n-1,k-1)(\(={}_{n-1}\mathrm{C}_{k-1}\))という組み合わせ記号しか使っていません。いっぽう後半は、三角関数を定義して微分(sympy.diff)を繰り返しています。この、全く異質な前半と後半から同じ数列が出てくるという "意外な関係性" は不思議な感じがします。
特に、\((\textbf{J})\) 式の導出に使った数学は、高校レベルの順列・組み合わせ、三角関数、微分・積分だけです。そういったベーシックな数学の中に、美しい関係式が潜んでいるのでした。