0

同じものを含む円順列の一般公式

139
0

はじめに

 この記事では次の問題を解いていきたいと思います。

 n1個の玉P1,n2個の玉P2,...,nm個の玉Pm、合計n1+n2++nm個の玉を円形に並べる方法の総数は何通りか?

 メビウス関数やオイラーのϕ関数などが出てきますが、記事内で定義から用いる性質までしっかり説明しますので、これらの関数について知らなくても、楽しんでいただけると思います。

"円形に並べる"をとらえる

 まずはここを明確にしていきます。
 円順列は、順列においては異なるとみなしていたものを同じとみなしたときの総数ととらえることができます。すなわち、順列として考えられるもの全体に対して、1つ1つのはじをつなげて輪っかにし、適当に回すことで完全に一致するものを集めて一つのグループにし、そのグループの総数が、求める円順列の総数となります。

周期

 すると、一つの順列に対し同じグループに属する順列の総数は違うことがあります。その値をここではその順列に対する周期と呼ぶことにします。
 周期は、輪っかにしたものを最初から一つずつずらして回転していったときに、初めて全体が一致するまで動かした回数に等しいです。一周しても一致しなければ周期はn1+n2++nmとなります。
 また周期はn1,,nmの最大公約数をg,n1=gn1´,,nm=gnm´としたとき、(n1´++nm´)d  (dgの約数) と表されることが分かります。
 ここでn1´,,nm´を固定します。
 nに対してP1n1´n個,,Pmnm´n個用いた順列の総和をF(n)とおくとF(n)=(n1´n+nm´n)!(n1´n)!(nm´n)!です。
 また、周期が(n1´++nm´)dである順列の総数をf(d)とすれば、F(n)=d|nf(d)が成り立ちます。
 さらに、求める総数をXとすれば、X=d|nf(d)(n1´++nm´)dであることが、周期の定義からわかります。
 このように、求めるXf(d)を仲介にしてF(n)という簡単に計算できるものと結びつけることができました。以下ではこれを一つの等式として結び付ける形に仕上げていくのですが、それにはメビウス関数とそれを用いた"メビウスの反転公式"に、オイラーのϕ関数が必要となります。

メビウス関数μ(n)

 この関数は
   μ(n)={1            (n=1)0       (n)(1)k      (nk)
 と定義されます。
 すると、以下の重要な性質が成り立ちます。

 n2な整数に対し、d|nμ(n)=0

 μ(d)0であるdは、nの素因数をp1,p2,,plとしたとき、p1e1×× plel(e1,,elはすべて01)の2l個。k個の素数の積に対してμ(1)kを返すので、この2l個の和は、
1lC1++(1)klCl=(11)l=0となって示されました。

メビウスの反転公式

f(n),g(n)を正の整数から実数への関数とすると
 f(n)=d|ng(d) ならば、g(n)=d|nμ(nd)f(d)
が成り立つ。

 

d|nμ(nd)f(d)=d|nμ(nd)d´|dg(d´)
=d|nd´|dμ(nd)g(d´)
 d´を固定してdを動かすと、dnの約数かつd´の倍数を動き、これはすなわち、ndnd´の約数になるように動くということです。このときd´nの約数を動くので、上の式は
 d´|ng(d´)nd|nd´μ(nd)
 と変形することができます。
 nd´2つまりd´nに対してはnd|nd´μ(nd)=0であったので
 =g(n)μ(nn)=g(n)
となって、これが求める式でした。  

オイラーのϕ関数

 正の整数nに対して、1以上n以下で、nと互いに素であるような整数の個数をϕ(n)と書き、これをオイラーのϕ関数と呼びます。ここでは次の性質のみを押さえておけば十分です。

 n=d|nϕ(d)(=d|nϕ(nd))

 1knが、k=dk´(k´ndと互いに素)と一意的に表すことができることを示せばよく、これはnd=n´とすると、
{k=dk´n=dn´
となり、k´n´は互いに素なので、dknの最大公約数となることから分かる。

 これとメビウスの反転公式から
 ϕ(n)=d|nμ(nd)d
 が分かります。

仕上げ

 これまでで
 {F(n)=d|nf(d)X=d|nf(d)(n1´++nm´)d
が導かれていたのでした。
 上の式にメビウスの反転公式を適用して、
 f(n)=d|nμ(nd)F(d)
 これを下の式に代入して、
 X=1n1´++nm´d|n1dd´|dμ(dd´)F(d´)

=1n1´++nm´d|nd´|d1dμ(dd´)F(d´)

=1n1´++nm´d|nd´|dndμ(nd´nd)F(d´)n
 メビウスの反転公式の場合と同様に、d´を固定すると、ndnd´の約数となるように動くので
 =1n1´++nm´d´|nF(d´)nnd|nd´ndμ(nd´nd)

 オイラーのϕ関数の節の中で示した最後の式からこれは
 =1(n1´++nm´)nd´|nF(d´)ϕ(nd´)  

となり、次の結論の式を得ることができました。

 n1個の玉P1,n2個の玉P2,...,nm個の玉Pmn1+n2++nm個の玉を円形に並べる方法の総数は、n1,n2,,nmの最大公約数をgとすると、
 1n1+n2++nmd|gF(d)ϕ(gd)
 で表される。

計算例

 例えば白玉6個,黒玉3個のときは、g=3であり、円順列の総数は
 19(F(3)+2F(1))=19(9!6!3!+23!2!1!)=19(84+6)=10
 と計算できます。  

  

 

 

投稿日:2024312
更新日:2024312
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

pentan
0
139

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. "円形に並べる"をとらえる
  3. 周期
  4. メビウス関数$\mu(n)$
  5. オイラーの$\phi$関数
  6. 仕上げ
  7. 計算例