背理法で解き明かす「ルート2が無理数であること」の証明:エンジニアの論理的思考
こんにちは。ゆうせいです。
プログラムのデバッグにおいて、「もしこの変数に不正な値が入っていると仮定すると、後の処理で矛盾が生じる。ゆえに、この変数に不正な値が入ることはあり得ない」という推論を行うことがあります。この思考プロセスは、数学における「背理法」そのものです。今回は、エンジニアの基礎教養として、ルート2が無理数であることを背理法を用いて論理的に証明します。
背理法とは何か
背理法は、ある主張を証明するために、あえてその否定が正しいと仮定し、そこから導き出される矛盾を指摘することで、元の主張が正しいことを結論づける手法です。
比喩を用いると、「犯人が外から侵入した」ことを証明するために、「もし犯人が内部人間だったと仮定すると、防犯カメラの記録と整合性が取れない。したがって、内部犯説は否定され、外部からの侵入であると断定できる」といった論理の組み立てに似ています。
ルート2が無理数であることの証明
それでは、具体的に証明を進めていきましょう。
1. 否定の仮定
まず、「ルート2は無理数ではない(=有理数である)」と仮定します。
有理数であるということは、これ以上約分できない既約分数(整数 を用いて
)として表現できるはずです。
(
と
は互いに素な整数)
2. 式の変形
この式の両辺を2乗して、分母を払います。
この等式は、 が2の倍数(偶数)であることを示しています。2乗して偶数になる数は、元の数も偶数であるため、
はある整数
を用いて
と置くことができます。
3. 矛盾の導出
を先ほどの式に代入します。
これにより、 も2の倍数であり、したがって
も偶数であることがわかります。
4. 結論
ここで矛盾が生じます。 も
も偶数であるということは、両者は2で約分できることを意味します。これは、最初に定義した「
と
は互いに素(これ以上約分できない)」という前提条件と矛盾します。
したがって、最初に立てた「ルート2は有理数である」という仮定が間違っていたことになり、ルート2は無理数であることが証明されました。
エンジニアがこの論理を学ぶメリットとデメリット
論理的証明を理解する利点
利点:システム設計におけるエッジケースの検討や、アルゴリズムの正当性を検証する際に、漏れのない論理を組み立てる訓練になります。「あり得ない設定」を仮定して矛盾を突く手法は、セキュリティ診断などでも応用されます。
実装上の注意点(デメリット)
欠点:数学的に無理数であると証明されていても、コンピュータ上で扱う際には、必ず有限の桁数で近似(丸め処理)を行う必要があります。理論上の完璧な証明と、計算機上の有限精度のギャップを常に意識しておかなければ、数値計算において重大なバグを招く可能性があります。
学習のステップ
論理的思考を実務に活かすために、以下のステップで学習を進めてください。
- 「もしこの条件分岐が通らないと仮定したら、どのような矛盾(システムエラー)が発生するか」という視点で、自身の書いたコードをレビューしてください。
- 浮動小数点数における精度不足が原因で、数学的には等しいはずの数値がプログラム上で不等(False)と判定される具体的なケースを確認してください。
- ルート3やルート5など、他の数値についても同様の手順で無理数であることを証明し、背理法のパターンを定着させてください。
論理の矛盾を突く能力は、高品質なコードを書くための強力な武器となります。数学的な証明を通じて、その感性を磨いていきましょう。
セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。

