遊びの数論64 

[遊びの数論] 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60
61 | 62 | 63 | 64

『遊びの数論63』の続き。誤字脱字・間違いがあるかも。


✿ ✿ ✿ ✿ ✿


2026-08-03 ウォルステンホームの第2命題・再訪 ちょっと目からうろこ

ウォルステンホームの定理といえば、 n が 5 以上の素数のとき
  1/1 + 1/2 + 1/3 + ··· + 1/(n − 1)
の分子は n2 で割り切れる、という命題を指すことが多い。有名な美しい定理ではあるが、本来これは3部構成の命題の一つ目。第2命題は、同じ条件において、
  1/12 + 1/22 + 1/32 + ··· + 1/(n − 1)2
の分子が n で割り切れる、というもの。標準的なアプローチでは、第1命題の証明のとき、とある整数 A, B がどちらも n の倍数であることが示される。「だったら A2 − 2BC も n の倍数だよね」(n の倍数と n の倍数の差なのだから)、というロジックで、第1命題のついでのように、第2命題は証明される。最後の第3命題は、第1命題ほどではないにせよ、それなりに有名(こっちも「ウォルステンホームの定理」と呼ばれる)。3部構成のうち、真ん中の第2命題だけは「おまけ」扱いというか、軽視されている。

理由は「第1命題が証明されると、連動的に証明されてしまい、パズル的な面白さが低い」ということかもしれないし、「第1命題の分母に《2乗》が付いただけで、二番煎じの類似品。 n2 で割り切れるという第1命題と比べ、単に n で割り切れるというだけでは地味」ということかもしれない。

ところが、この不人気の第2命題に、一般には知られていない「意外な事実」が隠されていた! 第2命題は、次の定理と同値なのだが………

定理 q が 5 以上の素数のとき、 q − 1 個の平方数 12, 22, ···, (q − 1)2 の「q − 2 個ずつの積」の和は、 q の倍数。

………この定理、実は q が素数でなくても、奇数の合成数であっても、成立する! ウォルステンホームの定理では、「n が 5 以上の素数なら」という枕詞がお約束。でも、第2命題に関しては、もし仮に分数の足し算結果を約分しないのであれば、「n が 5 以上の素数なら」というお約束をぶち破って門戸を広げ、「n が 5 以上の奇数ならオッケー。素数でない子も一緒に遊ぼっ。 9, 15, 21, ··· みんな、おいでよ☆」とできる!

なんて心温まる話(?)でしょう。っつーか、第2命題がいかに「おまけ扱い」され、深く研究されずに適当にあしらわれてきたかを如実に物語るエピソード、といえるかもしれない。

✿

§43 表記の簡潔化のため、
  1/12 + 1/22 + 1/32 + ··· + 1/(n − 1)2
の代わりに、文字を変えて
  1/12 + 1/22 + 1/32 + ··· + 1/(q − 1)2
として、 q − 1 をあらためて n と置く。すると、問題の和は:
  Hn(2) = 1/12 + 1/22 + ··· + 1/n2

この形の方がちょっとだけシンプルかと。この Hn(2) を機械的に通分した分子を考えよう。すなわち各項の分母を 12⋅22⋅32···n2 = (n!)2 にそろえた場合、第1項の分子は:
  22⋅32⋅42⋅52···n2 = (n!)2/12
第2項の分子は:
  12⋅32⋅42⋅52···n2 = (n!)2/22
第3項の分子は:
  12⋅22⋅42⋅52···n2 = (n!)2/32
等々。従って、通分後の足し算で生じる分子は、
  1, 2, 3, ···, n
の「n − 1 個ずつの積」の和 Sn−1(n) の平方数バージョン。つまり
  12, 22, 32, ···, n2
の「n − 1 個ずつの積」の和 Un−1(n) だ。総和記号で表記するなら:
  ∑{k=1 to n} (n!)2/k2
(この値は Hn(2) の足し算結果ではなく、 Hn(2) の分数たちを機械的に通分して足し算したときの、約分前の分子に当たる。)

〔例〕 12⋅22⋅32⋅42 = (4!)2 = 242 = 576 に留意すると:
  1/12 + 1/22 + 1/32 + 1/42 = (576/12 + 576/22 + 576/32 + 576/42)/576
   = (576 + 144 + 64 + 36)/576
この分子で足し算される四つの数は:
  22⋅32⋅42 = 576
  12⋅32⋅42 = 144
  12⋅22⋅42 = 64
  12⋅22⋅32 = 36
それらの和 820 が素数 n + 1 = 5 で割り切れる、というのが、 Wolstenholme の第2命題の事例。
  820/576 = 205/144
のように既約分数に約分しても、分子が 5 で割り切れるという事実に変わりはない(約分前の分母 (4!)2 は素因子 5 を持たないので、分子の素因子 5 は決して約されない)。

このような Un−1(n) の計算は、あまり見通しが良くない。次のようにすることで、これを比較的なじみ深いスターリング数 Sr(n) の計算に帰着させることができる。上の例でいえば、
  22⋅32⋅42 + 12⋅32⋅42 + 12⋅22⋅42 + 12⋅22⋅32
が欲しい。つまり(項の順序をソートすると)、
  U3(4) = 12⋅22⋅32 + 12⋅22⋅42 + 12⋅32⋅42 + 22⋅32⋅42  ア
が欲しい。各因子に付いている《2乗》さえなければ、これは単なるスターリング数
  S3(4) = 1⋅2⋅3 + 1⋅2⋅4 + 1⋅3⋅4 + 2⋅3⋅4
となり、簡単に操作可能(最も直接的には [5 S 2] = 4! H4 である)。従って U3(4) を直接的に計算して因子を一つ一つ平方する代わりに、
  {S3(4)}2 = (1⋅2⋅3 + 1⋅2⋅4 + 1⋅3⋅4 + 2⋅3⋅4)2  イ
のように全体を平方して、そこから U3(4) を導くのが得策かも、と思われる(実際、それがこの場合の定石)。

イを展開すると、
  (1⋅2⋅3)2 = 12⋅22⋅32 や (1⋅2⋅4)2 = 12⋅22⋅42
等々の、求めるべきアの成分が全て得られる他、
  2[(1⋅2⋅3)(1⋅2⋅4) + (1⋅2⋅3)(1⋅3⋅4) + ···]
の形の不必要な項も発生する。この不要部分を引き算で除去することは(スターリング数の立場からは)易しい。イは、一般的に言えば、
  (n!/1 + n!/2 + n!/3 + ··· + n!/n)2
の形なので、発生する不必要な部分は、次の形式を持つ:
  2[(n!/1)(n!/2) + (n!/1)(n!/3) + ···] = 2(n!) [n!/(1⋅2) + n!/(1⋅3) + ···]
この右辺の [ ] 内は、 1 から n までの数の「n − 2 個ずつの積」の和 Sn−2(n) だ。例えばイから生じるこの部分は 2(4!) S2(4) なので(n = 4)、
  U3(4) = {S3(4)}2 − 2(4!) S2(4)
となり、一般の場合には:
  Un−1(n) = {Sn−1(n)}2 − 2(n!) Sn−2(n)

n = q − 1 と置くと:
  Uq−2(q − 1) = {Sq−2(q − 1)}2 − 2⋅(q − 1)!⋅Sq−3(q − 1)  ウ
別表記 Wm(q) = Sm(q − 1) を使うと:
  Uq−2(q − 1) = {Wq−2(q)}2 − 2⋅(q − 1)!⋅Wq−3(q)  エ
あるいは、同じことだが、 (q − 1)! = Wq−1(q) なので:
  Uq−2(q − 1) = {Wq−2(q)}2 − 2⋅Wq−1(q)⋅Wq−3(q)  オ

q が 5 以上の素数のとき、 Wq−2(q), Wq−3(q) が q の倍数であることは周知(Lagrange の定理)。よってエの右辺は q の倍数、それに等しい Uq−2(q − 1) = Un−1(n) も q の倍数。この Un−1(n) が和 Hn(2) の分子であることから Wolstenholme の第2命題が生じる。

さらに Glaisher は、地味だが繊細な観察を追加した。―― Wolstenholme の定理では「5 以上の素数」ということが大前提。証明に使われるウないしエないしオ(どの式も実質同じ意味)においても「q は 5 以上の素数」という条件が予期される。だが、実は q が素数でなくても、 5 以上の奇数であれば Uq−2(q − 1) は q で割り切れる!

定理8(Glaisher [7], §28) 任意の奇数 q ≥ 5 について(q は素数でも合成数でも構わない)、 q − 1 種類の平方数
  12, 22, 32, ···, (q − 1)2
の q − 2 個ずつの積の和 Uq−2(q − 1) は q の倍数。

q が素数の場合に話を限るなら、これは Wolstenholme の定理の証明ツールとして使われる関連命題に過ぎず、その場合、定理8は定理7の特別な場合に過ぎない。しかし q は素数でなくても構わない――その点が、ちょっと目からうろこ。

証明 仮定により q ≥ 5 は奇数だから q − 2 も奇数。よって Wq−2(q) は q の倍数(命題3)。ゆえにエの右辺・第1項は q の倍数。

もし q が奇素数(q = 5, 7, 11, 13, 17, 19, ···)なら Wq−3(q) は q の倍数(Lagrange の定理)。一方、もし q が奇数の合成数(q = 9, 15, 21, ···)なら (q − 1)! は q の倍数†。どちらの場合でも、エの右辺・第2項は q の倍数。

従ってエの右辺は q の倍数。それに等しい左辺 Uq−2(q − 1) も q の倍数。∎

† もし合成数 q = u2 が(奇数の)平方数なら、整数 1, 2, ···, q − 1 の中には u と 2u が含まれる(もちろん u ≠ 2u)。よって (q − 1)! は u⋅2u = 2u2 の倍数、従って u2 = q の倍数。一方、もし合成数 q が平方数でないなら、その非自明な約数 u を任意に一つ選んで q = uv と置くと、整数 1, 2, ···, q − 1 の中には u と v が含まれる(u ≠ v)。よって (q − 1)! は u⋅v = q の倍数。

Lagrange の定理よりほんの少し広く、 q が素数でなくても Wq−2(q) は q の倍数(第1項の整除性が生じる)。 q が素数でないと Wq−3(q) は q の倍数にならないものの、そのときは Wq−1(q) = (q − 1)! が q の倍数となってカバーしてくれる(第2項の整除性が生じる)。言われてみれば何でもないことだが、見落とされがちな細道かもしれない。 q が素数のときは (q − 1)! は q の倍数になり得ないが、そのときは Wq−3(q) が q の倍数なので、どっちにしても第2項の整除性が生じる。


スターリング数
9(ナイン)の段

8! = 40320
109584
(投球後走る)
118124
(いい肺・二死)

心肺機能が
強力な投手が
活躍してるらしい。
スクイズか
バントを
猛ダッシュで捕球
ダブルプレー?


〔例〕 q = 9 のとき、エから:
  U7(8) = {W7(9)}2 − 2⋅8!⋅W6(9)
W7(9) と 8! はどちらも 9 の倍数なので、上記の数 U7(8) は 9 の倍数。参考までに具体的な数値を記すと、 W7(9) = 109584 《投球後走る》は 9 の倍数[直接的にも、桁の和 (1 + 8) + 9 + (5 + 4) は 9 の倍数]。 (q − 1)! = 8! = 40320 もまたしかり[直接的にも、桁の和 4 + 3 + 2 は 9 の倍数だし、単純に考えて 8! = 1⋅2⋅3⋅4⋅5⋅6⋅7⋅8 は明らかに 3⋅6 = 18 の倍数、従って 9 の倍数]。すなわち:
  U7(8) = (109584)2 − 2⋅40320⋅118124
ここで 118124 《いい肺・二死》はスターリング数 W6(9) であるが、 U7(8) が 9 で割り切れるという結論を得るためには、この具体的数値は必要ない。単に 109584 と 40320 がどちらも 9 の倍数であるということから、上記右辺は「9 の倍数(の平方)とら 9 の倍数の差」となり、結果は 9 の倍数。 W7(9) = 109584 自体、具体的数値は必要なく、 W7(9) は 9 の倍数という事実から――より一般的に言えば「k, ℓ が奇数なら Wk(ℓ) は ℓ の倍数」という一般原則から――、具体的な数値を考えるまでもなく、結論が得られる。

✿

§44 定理8を利用して、下記のような派生的命題を得ることができる。

t ≥ 1 と q ≥ 2 を整数、 L = 2q とする。 σ の基本公式〘ⅲ〙から:
  S2t(2q − 1) ≡ σt(q − 1; 2q) (mod q2)
一方、 N = n = q − 1 ≥ 1 と L = 2(n + 1) = 2q について、法 (L/2)2 = q2 の下で補題7を使うと:
  σt(q − 1; 2q) ≡ (−1)t Ut(q − 1) − (−1)t (2q)⋅Ũt(q − 1) (mod q2)  カ
従って:
  S2t(2q − 1) ≡ (−1)t Ut(q − 1) − (−1)t (2q)⋅Ũt(q − 1) (mod q2)
  ∴ S2t(2q − 1) ≡ (−1)t Ut(q − 1) (mod q)  キ

ここで q を 5 以上の奇数に限定すると、定理8から Uq−2(q − 1) ≡ 0 (mod q) が成り立つ。キに t = q − 2 を代入すると:
  S2q−4(2q − 1) ≡ 0 (mod q)  ク

同様に、基本公式〘ⅳ〙から:
  S2t+1(2q − 1) ≡ (q − t − 1/2)⋅2q⋅σt(q − 1; 2q) (mod q3)
カを使うと:
  S2t+1(2q − 1) ≡ (2q − 2t − 1)⋅q⋅[(−1)t Ut(q − 1) − (−1)t (2q)⋅Ũt(q − 1)] (mod q3)
  ∴ S2t+1(2q − 1) ≡ (2q − 2t − 1)⋅q⋅[(−1)t Ut(q − 1)] (mod q2)
q を 5 以上の奇数に限定して t = q − 2 と置くと、 Ut(q − 1) は q の倍数(定理8)、よって上記合同式の右辺は q2 の倍数:
  S2(q−2)+1(2q − 1) = S2q−3(2q − 1) ≡ 0 (mod q2)  ケ

ケとクをまとめると:

命題4([7], §29) q が 5 以上の奇数なら:
  S2q−3(2q − 1) = W2q−3(2q) = [2q S 3] ≡ 0 (mod q2)
  S2q−4(2q − 1) = W2q−4(2q) = [2q S 4] ≡ 0 (mod q)

q が素数 p の場合に関しては、この命題は、 Glaisher 自身による追記において、より一般的な定理4に包含される(証明の手法も、定理4の方が直接的でシンプル)。 q が奇数の合成数の場合に関しては、命題4は、定理4とは独立の新しい成果ではあるが、この場合、 W2q−1(2q) = (2q − 1)! が因子 q を何個持つか直接カウントすることによって、
  W2q−1, W2q−2, W2q−3, W2q−4, W2q−5
を統一的に扱うことができ、 W2q−3 と W2q−4 についても、命題4より少し強い結果が得られる。

従って「結果」だけを問題にするのなら、命題4は、「よりシンプルなアプローチによる、より一般的な結果」によって上書きされてしまう。

スターリング数と関連深い「中央階乗数」を利用する手法の面白さは、注目に値する。この場合、その手法で得られる成果(命題4)はパワフルではないけれど、 q が奇素数の場合と奇数の合成数の場合を統一的に扱える点は、一応、メリットともいえる。

✿ ✿ ✿


2026-09-16 ありきたりの問題とその応用 52! = 8065不可思議…

10! = 1 × 2 × 3 × ··· × 10 = 3628800

この整数(3628800)の末尾には 0 が 2 個ある。では整数 100! の末尾には 0 が何個あるか。 200! ならどうか。

これ自体は、ありきたりの問題「N! は素因子 p を何個持つか」の一種であり、簡単な割り算と足し算によってあっさり解決する。同様の発想をスターリング数の研究に応用できる。

ありきたりの部分の具体例。トランプの52種(13 × 4枚)のカードの積み重ね方(デッキ)には、何種類のパターンがあるか?

一番下のカードには、52種の選択肢がある。下から2枚目のカードには、51種の選択肢がある(残りの51枚から選ぶから)。同様に、下から3枚目・4枚目··· のカードには50種類・49種類···の選択肢があって、一番上のカードには、1種類の選択肢しかない。だから:
  52! = 52 × 51 × 50 × 49 × ··· × 1 =
   8065不可思議 8175那由他(なゆた) 1709阿僧祇(あそうぎ) 4387恒河沙(こうがしゃ) 8571極(ごく) 6606載 3685正
   6403澗 7669溝 7528穣 9505𥝱 4408垓 8327京 7824兆 0000億 0000万 0000
[参考リンク: 大きな数詞]

このように実際に掛け算してみて、結果の末尾の 0 の個数を数える――というのは、原理的には最も素直な解法。しかし「実際に掛け算してみる」という方法は、単に「面倒」というだけでなく、一般には「物理的に不可能」。というのも N が大きくなるにつれて整数 N! は急激に増大する。例えば W = 10100 自体は「1 の後ろに 0 が 100 個付いた、たった 101 桁の数」だが、整数 W! は、桁数が長過ぎて、たとえ全宇宙の全原子を総動員してひも状に並べ、一つ一つの原子に一桁ずつ数を刻んだとしても、数値を書き終わる前に書く場所が足りなくなってしまう†。つまり整数 W! は宇宙に入り切らないくらいでかく(桁数が長く)、①その数を実際に書く → ②末尾の 0 の個数を数える、という方針では、①の部分が実行不可能。

さりながら、問題は N! の数値そのものではなく、その数値の「末尾の 0 の個数」。 10 の倍数なら末尾に 0 があり、 102 = 100 の倍数なら末尾に 00 があり、 103 = 1000 の倍数なら末尾に 000 があり、等々。そして末尾が 0 の数を 1 回 10 で割るごとに、末尾の 0 が一つ減ることは明らかだから、「N! を実際に計算」する必要はなく、単に「N! は 10 で何回割り切れるか?」を考えれば十分。それは易しい。すなわち…

† (参考) W! = 1 × 2 × ··· × W は、明らかに
  A = 11 × 12 × ··· × W
より大きい。 A は W − 10 個(この個数を B とする)の整数の積だが、それら一つ一つの整数はどれも 10 より大きいし、個数 B = W − 10 は W ÷ 10 = 1099 個(この個数を C とする)より多いので、 A は 10 を C 個掛けたもの
  10 × 10 × ··· × 10 = 10C
より大きい。さて 10C は 1 の後ろに 0 を C = 1099 個並べた数だから、 1099 + 1 桁。その 10C より大きい A は、当然 1099 桁を超え、その A より大きい W! も 1099 桁を超える。一方、物理学者によると、全宇宙の原子の総数は、ざっと 1080 らしい。整数 W! を記述するには少なくとも 1099 個の桁が必要なので、書く場所が 1080 個程度では、 W! の全桁は書き切れない。

✿

ある数が 10 = 2⋅5 で割り切れるためには、当然その数は、素因子 2 と素因子 5 を持たねばならない。整数
  52! = 1 × 2 × ··· × 52
の例で言うと、掛け算される 1, 2, 3, ··· の中には 5 個に 1 個の割合で 5 の倍数があるのだから、それらの中に 5 の倍数が 10 個ある。具体的には、
  5, 10, 15, 20, 25,
  30, 35, 40, 45, 50
のちょうど 10 個の整数が、素因子 5 の供給源となる(それ以外の整数 1, 2, 3, 4, 6, 7, ··· は、素因子 5 を全く供給しない)。よって 52! は素因子 5 を少なくとも 10 個持つ。のみならず、これら 10 個の整数(5 の倍数)たちのうち、 25 = 52 と 50 = 2⋅52 の 2 個は、それぞれ素因子 5 を二つずつ供給する。
  5, 10, 15, ···, 50 の 10 個 → それぞれ素因子 5 を少なくとも一つ供給
  25 と 50 の 2 個 → 上記に加えて素因子 5 をもう一つずつ追加供給

要するに 52! は素因子 5 をちょうど 12 個含む。一方 52! に含まれる素因子 2 の個数は、具体的に考えるまでもなく、素因子 5 の個数より圧倒的に多い(整数 1, 2, 3, ··· の中には 2 個に 1 個の割合で 2 の倍数があるのだから)。

もはや結論は明らかだろう。一つの素因子 2 と一つの素因子 5 のペアによって「因子 10」が一つ生じるのだから――そして、そのようなペアを作れる素因子 2 は豊富にあるけど、素因子 5 は 12 個しかないのだから―― 52! は「因子 10」を 12 個だけ持つ。よって整数 52! の末尾には 0 が 12 個だけ並ぶ。

そして下から 13 桁目は 0 ではない。なぜなら 52! は因子 212⋅512 = 1012 を含み 10 で 12 回割り切れるが、 因子 213⋅513 = 1013 を含まず 10 で 13 回は割り切れない。

✿

以上の考察を簡潔に式で表すと、次の通り。 52! が持つ素因子 5 の正確な個数は:
  ⌊52/5⌋ + ⌊52/52⌋ = ⌊52/5⌋ + ⌊52/25⌋ = 10 + 2 = 12
ここで記号 ⌊r⌋ は r を超えない最大の整数を意味し、この文脈においては「余りを無視した整数商」、つまり「商の小数点以下切り捨て」。

さて 52 は 53 = 125 より小さいので、積 52! を構成する因子たちの中には「素因子 5 の三重供給源」は含まれていない(簡単に言えば 1 から 52 までの整数の中に 125 の倍数はない)。

もし N が 125 以上になると、 1 と N の間に 53 = 125 の倍数が含まれ、素因子 5 の「三重供給源」が生じる。 N がますます大きくなって 54 = 625 以上、 55 = 3125 以上、等々になると、素因子 5 の「四重供給源」「五重供給源」等々が生じる。それでも問題の本質は少しも変わらず、 52! の例と同様に考えると、 N の大小にかかわらず、簡単な足し算
  ⌊N/p⌋ + ⌊N/p2⌋ + ⌊N/p3⌋ + ···
によって、 N! に含まれる素因子 p の総数を正確に求めることができる(項の値が 0 になったら、そこで足し算を打ち切る。その先の項は全部 0 に等しく、足しても足さなくても値は変わらないので)。

〔例1〕 整数 100! の末尾には 0 が何個あるか。
  ⌊100/5⌋ + ⌊100/25⌋ + ⌊100/125⌋ = 20 + 4 + 0 = 24

〔例2〕 整数 200! の末尾には 0 が何個あるか。
  ⌊200/5⌋ + ⌊200/25⌋ + ⌊200/125⌋ + ⌊200/625⌋ = 40 + 8 + 1 + 0 = 49

〔例3〕 整数 300! は素因子 7 を何個含むか。
  ⌊300/7⌋ + ⌊300/49⌋ + ⌊300/343⌋ = 42 + 6 + 0 = 48

✿

以上、ありきたりの計算法を述べたが、スターリング数の性質の中には、このような考え方を利用して証明可能なものがある。その一例を記す。

問題1 p が 3 以上の素数のとき、
  [2p S 2] = (2p − 1)!/1 + (2p − 1)!/2 + ··· + (2p − 1)!/(2p − 1)
が p の倍数より 1 大きいことを示したい。

例えば p = 3 のとき:
  5!/1 + 5!/2 + 5!/3 + 5!/4 + 5!/5
  = 5⋅4⋅3⋅2 + 5⋅4⋅3⋅1 + 5⋅4⋅2⋅1 + 5⋅3⋅2⋅1 + 4⋅3⋅2⋅1
  = 120 + 60 + 40 + 30 + 24 = 274
は、 3 の倍数より 1 大きい。着目点として、積 5! = 1⋅2⋅3⋅4⋅5 = 120 を構成する五つの因子の中には 3 の倍数は一つしかない(3 自身)。従って 5! を 3 で割った商は、もはや 3 で割り切れない(事実 120/3 つまり 40 は 3 の倍数ではない)。他方において 5!/1 と 5!/2 と 5!/4 と 5!/5 は、どれも明らかに 3 の倍数。よって上記で足し合わされる 5 項のうち、最初の 2 項と最後の 2 項は 3 の倍数で、真ん中の項だけが 3 の非倍数。ゆえに、この問題においては、
  5!/1 + 5!/2 + 5!/3 + 5!/4 + 5!/5 ≡ 0 + 0 + 5!/3 + 0 + 0 ≡ 5!/3 (mod 3)
と見て、真ん中の項だけを考察すれば十分。ところが、
  5!/3 = 1⋅2⋅4⋅5 ≡ 1⋅2⋅1⋅2 = (1⋅2)2 = (2!)2 = ((3 − 1)!)2
であり、この右端の平方数は Wilson の定理から ≡ (−1)2 ≡ 1 (mod 3) であるから、当然 3 の倍数より 1 大きい。以上の議論は、容易に一般化される。すなわち:

問題1の解 2p − 1 個の分数(実際にはどの分数も整数値を持つ)の和
  (2p − 1)!/1 + (2p − 1)!/2 + ··· + (2p − 1)!/(2p − 1)
について、真ん中の項 (2p − 1)!/p 以外の全部の項は p の倍数。ゆえに、
  (2p − 1)!/p ≡ 1 (mod p)
を示せば十分。そして、上記の合同式が成り立つことは明白。なぜなら、
  (2p − 1)!/p = 1⋅2···(p − 1) × (p + 1)(p + 2)···(2p − 1)
   ≡ 1⋅2···(p − 1) × 1⋅2···(p − 1) ≡ ((p − 1)!)2
は、 Wilson の定理により ≡ (−1)2 を満たす。∎

実は、問題1の結論は、補題6の一部として既に証明されている。補題6に比べ、問題1は極めて限定的な内容に過ぎない。しかしながら、補題6が面倒な帰納法(Lagrange の漸化式と二項係数に関する Lucas の定理を組み合わせる)により導かれたのと対照的に、問題1は直接的な計算に基づく。すなわち、この部分だけを取り出すなら、問題1のアプローチの方が簡明で好ましい。整数 (2p − 1)! が素因子 p を何個持つか?という平明な問いに Wilson の定理を組み合わせただけ。のみならず…

✿

問題1のアイデアは、容易に次の命題へと一般化可能。

問題2 p が 3 以上の素数、 m が 2 以上の整数のとき、
  [mp S m] ≡ (−1)m (mod p)
が成り立つ。

m = 2 の場合が問題1に当たる。 m = 3 の場合、証明すべき合同式は次の通り:
  [3p S 3] = ∑ (3p − 1)!/(ij) ≡ −1 (mod p)
ここで i, j は 1 ≤ i < j ≤ 3p − 1 の範囲の全ての整数の組み合わせにわたる。着目点として、積 (3p − 1)! を構成する 3p − 1 個の整数の中に、 p の倍数はちょうど 2 個ある(具体的には p と 2p)。ゆえに、上記の総和で足し合わされる各項は、 i = p, j = 2p の場合を唯一の例外として、どれも p の倍数。よって、合同式
  (3p − 1)!/(p⋅2p) ≡ −1 (mod p)
を示せば十分。それは易しい。実際、この左辺の分数は、整数
  1⋅2···(p − 1) × (p + 1)(p + 2)···(2p − 1) × (2p + 1)(2p + 2)···(3p − 1)
に等しく、この整数について、 Wilson の定理から ≡ ((p − 1)!)3 ≡ (−1)3 (mod p) が成り立つ。

一般の場合も同様。次の通り。

問題2の解 [mp S m] = ∑ (mp − 1)!/(i1i2···im−1) が、法 p の下で (−1)m と合同であることを示す。ここで i たちは、
  1 ≤ i1 < i2 < ··· < im−1 ≤ mp − 1
の範囲の全ての整数の組み合わせにわたる。この総和の各項は、
  i1 = p, i2 = 2p, ···, im−1 = (m − 1)p
の場合を唯一の例外として、どれも p の倍数。ゆえに、
  (mp − 1)!/(p⋅2p···(m − 1)p) ≡ (−1)m (mod p)
を示せば十分。この左辺の分数(整数値を持つ)は、次の m 個の整数の積に等しい。
  A1 = 1⋅2···(p − 1)
  A2 = (p + 1)(p + 2)···(2p − 1)
   ︙
  Am = ((m − 1)p + 1)((m − 1)p + 2)···(mp − 1)
法 p の下で A1 ≡ A2 ≡ ··· ≡ Am であることに留意すると、 Wilson の定理から、これら A たちの積は (−1)m と合同。∎

✿

冒頭で述べた「ありきたりの算数」では
  N! = 1⋅2···N
に含まれる素因子 p の個数
  ⌊N/p⌋ + ⌊N/p2⌋ + ⌊N/p3⌋ + ···
を問題にした。しかしスターリング数への応用では、もっと単純に、
  1, 2, ···, N
の中に p の倍数が何個あるか?を問題にした方が、往々にして話が簡単になる。つまり、単に
  ⌊N/p⌋
だけを考えた方が、むしろ良い。

事実、問題2において、もし m が p より大きければ、積 (mp − 1)! を構成する因子たちの中には、素因子 p を「多重供給」するもの(p2 の倍数や p3 の倍数など)が含まれるけれど、そのことは、問題2の解のロジックに影響を及ぼさない。その理由は次の通り。

今、整数 (mp − 1)! が素因子 p をちょうど x 個持つとしよう。 x がどんなに大きいとしても、 mp − 1 個の整数から成る集合
  S = {1, 2, ···, mp − 1}
の中に p の倍数たちは m − 1 個しかない。集合 S から相異なる m − 1 個の整数 i たちを選んでそれらの積
  D = i1i2···im−1
を考えるとしよう。その場合、 S の中に m − 1 種類ある p の倍数たち全部を(m − 1 種類の i たちとして)選んだとき、 D に含まれる素因子 p の個数が最大になることは、言うまでもない――その選択の場合、仮定により D は素因子 p を x 個持つ。それ以外の選択の場合、 i たちのどれかが p の非倍数に置き換わるのだから、 D に含まれる素因子 p の個数は減って、上記の最大値「x 個」より少なくなる。

言い換えると、分数
  (mp − 1)!/(i1i2···im−1)
の分子には素因子 p が x 個含まれるけれど、分母に含まれる素因子 p の個数 y は、一般には x より小さい。その結果、約分すると分母に p が x − y 個残って、この分数(実際には整数値を持つ)は p の倍数になる。唯一の例外は、 m − 1 種類の i たちとして S に含まれる m − 1 種類の p の倍数を過不足なく選ばれた場合(言い換えれば i たち全部が p の倍数の場合)。そのとき分子と分母はどちらも素因子 p を x 個持つのだから(つまり y = x が成り立つから)、約分すると分母の p は全滅し、上記分数は p の非倍数になる。

この単純な観察が、問題2の解のロジックの核心。素因子 p の正確な個数 x はこの際どうでもよく、正確な個数 x にこだわると問題が複雑化し、解決困難になってしまう。

N! に含まれる素因子 p の正確な個数にこだわらないこと――あえて「大ざっぱに考える」こと――が、この議論の要。

✿

q が合成数の場合、 Lagrange の式からの通常のアプローチは不可能になるが、その場合でも k が小さければ、例えば [2q S k] を mod q あるいは mod q2 等々で考察できる場合がある。その場合にも
  (2q − 1)! には因子 q が何個含まれるか?
を問題にせず、もっと大ざっぱに、
  (2q − 1)! で掛け算される 2q − 1 個の整数の中には q の倍数が何個あるか?
というシンプルな観点が、役立つ。これについては、機会があれば記す。

✿ ✿ ✿


<メールアドレス>