6

二項係数と素数の剰余の関係

702
1

はじめに

こんにちは.きたせんです.先日数学で,ある組み合わせに関する公式を繰り返し用いると興味深い(?)結果が得られることに気づいたのでここに共有します.
その数式とはこちらです.

二項係数の性質(1)

nCr=n1Cr1+n1Cr(n, rZ, 0rn)

(右辺)=(n1)!(nr)!(r1)!+(n1)!(nr1)!r!=r(n1)!(nr)!r!+(nr)(n1)!(nr)!r!=n!(nr)!r!=nCr //
※補足
nCrの組み合わせの中で特定の1個を含まない組み合わせ
→選ぶ個数は同じだが選べる対象は一つ減るからn1Cr
nCrの組み合わせの中で特定の1個を含む組み合わせ
→選ぶ残りの個数,選べる対象はともに1減るからn1Cr1
両者は互いに排反であるから,和はnCr
というように意味づけをして証明することもできる.

補題を繰り返し用いる

では,この補題1を繰り返し用いるとどうなるのでしょうか?順番に実験して規則性を見出していきます.
{n1Cr1=n2Cr2+n2Cr1n1Cr=n2Cr1+n2Cr
ですから,辺々足し合わせることにより,次の式を得ます.

nCr=n2Cr2+2n2Cr1+n2Cr

そして,補題1を用いて上式を書き下していくと,
{n2Cr2=n3Cr3+n3Cr22n2Cr1=2n3Cr2+2n3Cr1n2Cr=n3Cr1+n3Cr
ですから,辺々足し合せることにより,次の式を得ます.

nCr=n3Cr3+3n3Cr2+3n3Cr1+nCr

ここでもう規則性に気づいた人は天才かもしれません.さらに,補題1を用いて上式を書き下すと,
{n3Cr3=n4Cr4+n4Cr33n3Cr2=3n4Cr3+3n4Cr23n3Cr1=3n4Cr2+3n4Cr1n3Cr=n4Cr1+n4Cr
ですから,辺々足し合わせることにより,次の式を得ます.

nCr=n4Cr4+4n4Cr3+6n4Cr2+4n4Cr1+n4Cr

もう気づいたでしょう.そう,展開した右辺の各項の係数も二項係数になっています!!
ここから,次の予想を立てることができます.

二項係数の級数表示

すべてのpNについて,nCr=k=0ppCknpCrk とかける.

いかにも数学的帰納法で証明できそうな内容ですね(pが変数なの気持ち悪くてごめんなさい).証明は少し煩雑に思えるかもしれません.ですが,証明の段取りは上で行った実験から見えているはずです!

二項係数の級数表示を証明してみよう

pに関する数学的帰納法で証明する.

  1. p=1のとき
    (右辺)=k=011Ckn1Crk=n1Cr+n1Cr1=nCr(補題1)
    より成立する.

  2. p=l (l1)のとき
    nCr=k=0llCknlCrk とかけることを仮定する.

p=l+1の場合について考える.
lCknlCrk=lCk(nl1Crk1+nl1Crk)(補題1)とかけるから,k0からlまで動かして足し合わせれば,p=lの場合の級数表示(仮定)となる.式を書き下すと,
lC0nlCr=lC0nl1Cr1+lC0nl1Cr+lC1nlCr1=lC1nl1Cr2+lC1nl1Cr1+lC2nlCr2=lC2nl1Cr3+lC2nl1Cr2++lCknlCrk=lCknl1Crk1+lCknl1Crk+lCk+1nlCrk1=lCk+1nl1Crk2+lCk+1nl1Crk1++lCl1nlCrl+1=lCl1nl1Crl+lCl1nl1Crl+1+lClnlCrl=lClnl1Crl1+lClnl1Crl
(※上式の左辺を足し合わせていくと,p=lの場合の級数表示k=0llCknlCrk)
右辺について,補題1から導かれる,lCk+lCk+1=l+1Ck+1という関係に注意してその和を計算すると,
(右辺の和)=lC0nl1Cr+(lC0+lC1)nl1Cr1+(lC1+lC2)nl1Cr2+(lC2+lC3)nl1Cr3+(lCk+lCk+1)nl1Crk1+(lCk+1+lCk+2)nl1Crk2+(lCl2+lCl1)nl1Crl+1+(lCl1+lCl)nl1Crl+lClnl1Crl1   =l+1C0nl1Cr(lC0=l+1C0=1)+l+1C1nl1Cr1+l+1C2nl1Cr2+l+1C3nl1Cr3+l+1Ck+1nl1Crk1+l+1Ck+2nl1Crk2+l+1Cl1nl1Crl+1+l+1Clnl1Crl+l+1Cl+1nl1Crl1(lCl=l+1Cl+1=1)=k=0l+1l+1Cknl1Crk
したがって,(左辺の和)=(右辺の和)k=0llCknlCrk=k=0l+1l+1Cknl1Crk
が成り立ち,仮定から,p=l+1のときもnCr=k=0l+1l+1Cknl1Crkとかけるため,数学的帰納法によって,題意は示される.//

二項係数の級数表示の応用

この級数表示の何が嬉しいかを次に解説していきます.

二項係数の性質(2)

pを素数とするとき,1kp1を満たすkNに対して,二項係数pCkpの倍数である.

pCk=p!(pk)!k!=pk(p1)!(pk)!(k1)!=pkpkCk1
であるから,kpCk=pp1Ck1が成り立つ.左辺がpの倍数でかつp, kは互いに素であるから,pCkpの倍数となる.//

ここで,先ほど証明した二項係数の級数表示,nCr=k=0ppCknpCrkをながめると,新たな知見が得られると思います.で足し合わせられる項のうち,1kp1を満たすものについては,補題2から,pの倍数です.ここから,以下の公式が導けます.

二項係数と素数の剰余の関係(1)

pが素数ならば,nCrnpCr+npCrp (mod p)(0prn)

nCr=k=0ppCknpCrk=pC0npCr+k=1p1pCknpCrkpの倍数+pCpnpCrpnpCr+npCrp (mod p)//

なんと,pを法とする剰余類で二項係数を取り扱うときに使いやすそうな式を得ることができました!
式の見た目も何やら補題1に似たものがあります...ですので,繰り返しこれを用いるとまた同様の結果が得られそうな予感がします.

また繰り返し用いてみよう

以下,法はすべて(mod p)とします.
{npCrpn2pCr2p+n2pCrpnpCrn2pCrp+n2pCr
ですから,辺々足し合わせることにより,次の式を得ます.

nCrn2pCr2p+2n2pCrp+n2pCr

そして,公式1を用いて上式を書き下していくと,
{n2pCr2pn3pCr3p+n3pCr2p2n2pCrp2n3pCr2p+2n3pCrpn2pCrn3pCrp+n3pCr
ですから,辺々足し合せることにより,次の式を得ます.

nCrn3pCr3p+3n3pCr2p+3n3pCrp+nCr

なんだか既視感を感じませんか?記事の最初の方で二項係数の級数表示を導くにあたって実験をしましたが,それを(ほぼ)同じですね.したがって,次の補題が導けます.

すべての自然数mについて,nCrk=0mmCknmpCrkp (mod p)

※簡単な説明です.

二項係数の級数表示nCr=k=0mmCknmCrkにおいて,nmCrknmpCrkpとすれば,繰り返しのアルゴリズムがほぼ同じであることから容易に示される.//

では,m=pであるとき,どうなるでしょうか?このとき,pCkは,0kp1において,補題2からpの倍数です.したがって,次の公式が導けます.

二項係数と素数の剰余の関係(2)

pが素数ならば,nCrnp2Cr+np2Crp2 (mod p)

補題3について,m=pのとき,
nCrk=0ppCknp2Crkp=pC0np2Cr+k=1p1pCknp2Crkppの倍数+pCpnp2Crp2np2Cr+np2Crp2 (mod p)//

どうやらまた規則性が見えてきました...次の命題が成り立つことを予想できそうです.

二項係数と素数の剰余の関係を一般化してみよう

二項係数と素数の剰余の関係(3)

pが素数ならば,任意のqNについて,nCrnpqCr+npqCrpq (mod p)

またもや数学的帰納法で示せそうな内容ですね.筆者も何回も同じようなことを書いていて疲れたので少し証明は手を抜かせてください...

※簡単な説明です.

qに関する数学的帰納法で示す.

  1. q=1のとき
    公式1から成立.
  2. q=l (l1)のとき
    nCrnplCr+nplCrpl (mod p)を仮定する.

q=l+1のときを考える.
補題3と同じようなやり方,アルゴリズムを用いることで,すべての自然数mについて,nCrk=0mmCknmplCrkpl (mod p)が成り立つ.ここにおいて,m=pのとき,公式2の証明の仮定のようにすることで,
nCrk=0ppCknpl+1Crkpl=pC0npl+1Cr+k=1p1pCknplCrkplpの倍数+pCpnpl+1Crpl+1npl+1Cr+npl+1Crpl+1 (mod p)
q=l+1のときも成り立つことがわかる.したがって,数学的帰納法から,題意が示される.//

具体的な公式の活用

100C501の位を求めよ.

解答

まずは,100C505で割った余りを考えればよい.法は(mod 5)とする.公式2を繰り返し用いると,
100C5010052C50+10052C5052=75C50+75C25=275C252(7552C25+7552C2552)=250C25+250C02(5052C25+5052C2552)+2225C25+225C0+2=61 (mod 5)
さらに,100C50を2で割った余りを考えると,法を(mod 2)として,公式1から,
100C501002C50+1002C502=98C50+98C48=298C480 (mod2)
したがって,100C505で割って1余るような偶数である.したがって,100C5010で割った余りは6となる.であるから,100C501の位は6となる.

おわりに

今回がMathlogの初投稿です!色々タイプミス等もあるかもしれませんが,何卒よろしくお願いします><
今回の剰余の関係については,素数にしか使えないのが少し残念かな...と感じております.
何かミス等あればコメントなどでお知らせください.加筆修正をします.ではまた.

投稿日:2024521
更新日:2024524
OptHub AI Competition

この記事を高評価した人

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

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

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

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

投稿者

北センチネル島@シアン化物イオンです 暇人

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 補題を繰り返し用いる
  3. 二項係数の級数表示を証明してみよう
  4. 二項係数の級数表示の応用
  5. また繰り返し用いてみよう
  6. 二項係数と素数の剰余の関係を一般化してみよう
  7. 具体的な公式の活用
  8. おわりに