ご注文は数オリですか?

トピック一覧へ戻る

中国剰余定理
更新日:2021-12-13

この記事では,数学オリンピックにおける中国剰余定理の応用について解説します. この記事は,Evan Chen氏による教材 The Chinese Remainder Theorem の翻訳です(翻訳・掲載に関して,本人より許可を得ています).

はじめに

まずは準備として形式的な中国剰余定理のステートメントを述べましょう. これは誰でも知っています.

定理. (中国剰余定理). m1,m2,,mk をどの二つも互いに素な正の整数とし, それらの総積を M とする. このとき, 任意の整数の組 (x1,x2,,xk) に対し, xxi(modmi) (i=1,,k) をみたす整数 xmod M で一意に存在する.

しかし, この「定理」自体に大した意味はありません. あくまで, 十分な経験を積めば容易に得られるような「直感」をただ定式化したに過ぎないのです. とはいえ, それはこの「定理」が役立たずという意味ではありません. 背後の「直感」が有用だからこの「定理」は有用なのです. その「直感」の汎用性を理解するため, 「定理」の異なる表現を見ていきましょう.

どんな「中身の無い」定理にも言えることですが, その発想をしっかりと吸収することが大切です. 中国剰余定理が最も効果的に適用されるのは, 明示的でないときです. 以下で扱う問題においても, 共通して鍵となるのは, 中国剰余定理が重要なステップではないということです. むしろ, 何をすべきかを明らかにするために使われるものなのです.

1. Construction (構成)

表現 1. ixxi(modmi) をすべて成立させる x が, 実際何なのかはわからないが, 何かしら存在はする.

こうして得られる x は恐ろしく巨大になるかもしれません. また, x の具体的な値を明示的に表示するステップが存在するわけではありません. しかし真に大切なのは, とにかく何かしら存在することが保証されることなのです.

#1
判定中

任意の正の整数 n に対し, いずれも 1 より大きく, かつどの二つも互いに素であるような正の整数 k0,k1,,kn であって, k0k1kn1 が二つの連続する整数の積として表せるものが存在することを示せ.

問題を言い換えれば, f(t)=t(t+1)+1 が相異なる n+1 個の素因数をもつ t の存在を言えばよいということです. ではこの「たくさんの素因数をもつ」という条件をどう処理すればよいでしょうか? n+1 個の素数 p1,,pn に対して, P(t)0(modpi) をみたす t の存在を言えばよいのですが, ここで中国剰余定理を思い出しましょう. 各 i について, P(ti)0(modpi) をみたす ti の存在さえ言えてしまえばよいのです. したがって, 問題はただ単に t2+t+1 という形式の倍数をもつ素数が無数に存在することを示すのみとなりました. これは素数の無限性の有名な証明と同じです. すなわち, 有限と仮定すれば, それらの総積 N について N2+N+1 を見れば矛盾します.

工事中

#2
判定中

正の整数に対して定義され正の整数値をとる関数 f が以下の条件をみたす:

  • mn が互いに素ならば, f(m)f(n) も互いに素である.
  • 任意の正の整数 n に対し, nf(n)n+2012 である.

このとき, 正の整数 n および素数 p について, f(n)p の倍数ならば np の倍数であることを示せ.

ある n,p について pf(n) かつ pn として矛盾を導きます. アイディアは, f(N)=N なる十分大きい N を構成することです. n+p+2013 より大きい相異なる 2012×2013 個の素数 qi,j をとります. 以下の表を考えましょう.

N+1N+2N+2012Mq0,1q0,2q0,2012M+1q1,1q1,2q1,2012M+2012q2012,1q2012,2q2012,2012

例えば, N+jq0,j,,q2012,j ですべて割りきれるといった塩梅です. 中国剰余定理よりそのような N,M をとることができます. さらに N0(modp),N1(modn),M1(modN) を課しましょう.

このとき f(N)=N です!どうすればわかるでしょうか? NM は互いに素なので, f(N)f(M) も互いに素です. ここで f(M)N+1,,N+2012 のいずれとも互いに素ではないので, f(N)=N となるほかありません.

ここまで来ればもう終わりです. あとは f(N)=Nf(n) が互いに素なことを利用すればよいです.

工事中

2. Lifting (持ち上げ)

表現 2. ixk(modmi) がすべて成立するとき, xk(modM) でもある.
#3
判定中

以下の条件をみたす定数 c>0 が存在することを示せ:

  • 正の整数 a,b,n について, 任意の 0i,jngcd(a+i,b+j)>1 のとき, min{a,b}>(cn)n が成立する.

この問題の興味深い点はどこでしょうか? 仮定は整除のみに関連するのに対し, 結論は大小関係のみに関連しています. これらはどのように関係するでしょうか? 一般に乗法の構造というのは扱いが難しいものです. そこで, この形式の中国剰余定理を思い起こしてみましょう. 例えば a+i0(modsomething really big) が示せるとしたら, どうでしょうか?

条件より任意の 0i,jn について, ある素数が a+ib+j をともに割りきります. この情報を, 例えば以下のような (n+1)×(n+1) の表に落とし込んでみましょう. 実際にはすべての位置になんらかの素数が入ります.

.2.2.2.2.2...57...5..7.232.2.232.............2.2.2.2.2...3..3..3...252.2.2.2.............232.2.2327............2.2.2.2.2.

それぞれの素数は, 一定の間隔の “subgrid” として表れていることに留意しましょう. これより, 素数 p は “密度” として表全体の高々 p2 ほどを占めます. しかし, pp2 はそこまで大きくありません. 実際これは 1/2 未満です. すなわち, この表には “十分大きい” 素数がたくさん入り込むことになります. 総和 n+1p2 をちゃんと評価してあげることで, 表の半分以上は 0.001n2 より大きい素数になることがわかります. すなわち, ある行について半分以上が 0.001n2 より大きく, a+i(0.001n2)n/2=(cn)n より大きいそれらの積で割りきれます.

工事中

3. Destruction (分解)

表現 3. mod M での振る舞いを調べたければ, 各 i について mod mi で, 特に素べきを法として振る舞いを調べればよい.

この表現には, あまり面白い例を与えることができません. なぜならば, 多くの場合において, この表現を噛ませたところで問題自体はあまり変わらないからです. 次の例はかなり馬鹿げたものですが, 演習問題にはより面白いものがあります.

表現 2. ixk(modmi) がすべて成立するとき, xk(modM) でもある.
#4
判定中

任意の正の整数 n に対し, 4a2+9b21n で割りきれるような整数 a,b が存在することを示せ.

n が素べきの場合に示せば十分である. n2 べきのとき, 3b1(modn) なる b が存在するから, これをとり a0 にすればよい. それ以外のとき, 2a1(modn) なる a が存在するから, これをとり b0 にすればよい.

演習問題

#5
判定中

任意の正の整数 n に対し, いずれも素べきでないような n 個の連続する正の整数がとれることを示せ.

piqix+i を課してみよ.

工事中

#6
判定中
有名問題

n を正の整数とする. 1 以上 n 以下の整数 x であって, x2x(modn) なるものの個数を, n を用いて表せ.

n を割りきる素べきについて解く. 答えは 2 べきになる.

工事中

#7
判定中

n を正の整数とし, a1,,ak (k2) を集合 {1,,n} の相異なる元とする. i=1,,k1 に対し, ai(ai+11)n で割りきれるとする. このとき, ak(a11)n で割りきれないことを示せ.

背理法を用いる. n を割りきる素べき pr をとり, 任意の i に対して ai0(modpr) であるか, または任意の i に対して ai1(modpr) であることを示す.

工事中

#8
判定中

正の整数 k が任意に与えられている. このとき, 相異なる正の整数 a1,b1,a2,b2,,ak,bk であって, a1b1,a2b2,,akbk が等差数列であり, かつ各 i=1,2,,k に対し aibi が互いに素であるようなものが存在することを示せ.

正の整数 x,N であって, 以下を既約にすると条件をみたすものを考えよ. x+1N,x+2N,,x+kN さらに, それぞれの分数でちょうど一つの素数のみが割られるようにせよ.

工事中

#9
判定中

以下の条件をみたす正の整数の組 (a,b,c) をすべて求めよ:

  • 正の整数 n2014 以下の素数のいずれでも割りきれないとき, an+bn+nn+c で割りきれる.

適当な十分大きい素数 p について, nmodpmodp1 で固定せよ. p はどのようにとるべきか?

工事中

#10
判定中
出典不明

3 以上の整数 a>b>c が以下の条件をみたすとき, a,b,c のうち少なくとも一つは素数でないことを示せ. abc+b+c,bca+c+a,cab+a+b

因数分解できる形に持ち込め (Simon’s Favorite Factoring Trick).

工事中

#11
判定中

任意の正の整数 n に対し, n 個の正の整数からなる集合 S であって, 以下の条件をみたすものが存在することを示せ.

  • 任意の相異なる S2a,b に対し, abab を割りきるが, 他の S の元いずれをも割りきらない.

n=3 のとき, x12x23x3 から {10,12,15} が見つかる. n=4 のとき, x160x290x37x4 から…

工事中

有限集合 X に対し, すべての元の総和, 総積をそれぞれ S(X),P(X) で表す.

ともに正の整数からなる有限集合 A,B|A|=|B|,P(A)=P(B),S(A)S(B) をみたす. A または B に含まれる n およびその素因数 p について, 常に p36n かつ p37n が成立するとき, |S(A)S(B)|>5107 を示せ.

|S(A)S(B)|233357131937 で割りきれることを示せ.

工事中

#13
判定中

以下の条件をみたす整数係数多項式 P(n) をすべて求めよ:

  • xyz 空間内の格子点それぞれに正の整数を割り当てる方法であって, 任意の正の整数 n に対し, 任意の n×n×n の部分グリッドに割り当てられた n3 個の正の整数の和が P(n) で割りきれるものが存在する.

1 次元のケースをまず考えよ. 3 次元でも状況はそう変わらない.

工事中

#14
判定中

m1,m2,,m2013>1 をどの 2 つも互いに素な整数とし, i=1,,2013 に対し Ai1 以上 mi1 以下の整数からなる集合とする (空でもよい). このとき, 以下の条件をともにみたす正の整数 N が存在することを示せ.

  • N(2|A1|+1)(2|A2|+1)(2|A2013|+1)
  • i=1,,2013 に対し, Nmi で割った余りは Ai に含まれない.

ti1(modmi) かつ ti0(modmj) (ij) なる ti をとる. biBi によって以下の形式に表せる数を考えよ. biti ここで集合 Bi は, 任意の x,yBixyAi となるようにとる. このとき, 以下をみたせることをgreedilyに示せ. |Bi|mi2|Ai|+1

工事中