ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

全ての素数の積は偶数だと思ったんだけど

2014-11-29 23:19:50 | Weblog

数日前に、『全ての素数の積が偶数なのが納得がいかない人たち』というのが話題になりまして。
「2×3×5×7×11×…が偶数か奇数か」という問題で、2を掛けてるんだから偶数に決まってるじゃん、と思ったんだけど、そうとは言えないんだそうで。

この話題の過程で自分が知らなかったことを教えてもらったんで、面白いので書いておきたい。

そもそも、数学的帰納法を使えば、n-1番目までの素数の積が偶数なら、それとn番目の素数を掛けた値は偶数だし、先頭は2だから、全部偶数じゃん。
と思ったんだけど、数学的帰納法は、無限に対しては使えないんだそうだ。
数学的帰納法自体は学校でも教わることだけど、そんな制限は聞いたことが無かったので、驚いた次第。

何故かと言うと、有限であればどんな大きな数になっても満たされる性質があったとしても、無限になった時もその性質を満たすとは限らないんだそうだ。
例えば、四角形の2辺を階段状に細かくしていくと、長さは1辺の2倍のままだが、無限までいくと対角線と等しくなる、という話がある。(→「√2 = 2の証明」あるいは「斜面と階段のナゾ」(これはちょっと違う話か?)
今回の素数の積では、n番目の素数までの積は偶数だけれども、「無限になった場合でも偶数であると言うことは出来ない」ということになるようだ。

また、∞(無限大)は、“数”ではない
2にどんな整数を掛けても偶数になるが、∞は数(整数)ではないので、掛けても偶数とは言えない。
というより、∞は数ではないので、掛け算が出来ない。
これをプログラミング言語で例えると、整数はInteger型であり、∞は無限型とでも言うべき別の型である。この異なる型同士の掛け算が定義されていない限り、そんな演算は出来ない。
この比喩はプログラマーである自分には非常に分かりやすかった(笑)
(Javaだと、+∞を表すPOSITIVE_INFINITYという値がDoubleクラスに定義されているが、便宜上Double内に定義されているだけ。
ちなみにdoubleでは∞に対する演算は定義されている。2で割った余りが0なら偶数、1なら奇数だが、「POSITIVE_INFINITY % 2」の結果はNaNであり、どちらでも無かったw)


ちなみに自分は数学家ではないので、厳密な話をされても分かりません。
厳密な話をしたければ、cocoatomoさんに振って下さい(爆)

追記:cocoatomoさんによる解説→Adventures in Wonder-infinite-land


最新の画像もっと見る

コメントを投稿