パラドックスとは一言で言うと、一見論理的に見えるけどよく考えると矛盾するものごとのことです。
代表的なものとして、砂山のパラドックスやハゲのパラドックスがあります。
ここに有限の砂でできている砂山があります。
ここから、砂を一粒取り出すと、まだ砂山を維持できます。
二粒取り出しても、まだ砂山を維持できるでしょう。
それでは、これをたくさん取り出しても砂山が維持できるので、砂山の砂をすべて取り出したとしても砂山が維持できる、という矛盾となります。
これが砂山のパラドックスです。
この問題設定で、砂を髪の毛、砂山を髪とするとハゲのパラドックスになります。
砂山と同じ理由で髪の毛から何本抜いても禿げにはならないよねーということですね。
まあ、そんなわけないので実験しないでくださいね(当たり前だ)
よく砂山のパラドックスと聞くと「こういうパラドックスがあります。面白いよねー」で終わることが多いですが、ここではなぜ誤りなのか、どうすればよかったかまで解説します。
ポイントは一つ、砂山の定義を決めれば問題なく進められます。
例えば、「1000粒は砂山で、999粒は砂山でない」というような境界を設定するだけでこの問題は解消します。
人間の感覚をあてにするからパラドックスが起きるわけですね。
例えば、1000粒で砂山という人もいれば、100粒だけでも砂山という人もいます。
もう一つ人食いワニのパラドックスを紹介します。
人食いワニがいて「これから私のすることを予言できたらあなたを食べないであげましょう」と言い、「あなたはこれから私を食べるでしょう」というとワニは何もできなかったというものです。
もしワニが食べれば予言が当たったことになり、食べないことと矛盾し、食べなければ予言がはずれたので食べてしまう。
しかし、そうするとやはり食べてしまうので予言は当たったことになる、というようなパラドックスです。
では、このパラドックスを解消させましょう。
ワニ「これから私のすることを予言できたらあなたを食べないであげましょう」
人「わかった!お前はこれから私を食べる!」
ワニ「ブー、不正解です。正解は逆立ちをする、でした。不正解なので食べます」
人「ま、待て、食べるってことは予言が当たったんじゃ―」
ワニ「まだ僕の処理が終わってないです。食べます。むしゃむしゃ。人間はまずいなぁ」
人間を食べ終えた後
ワニ「さて、予言が当たりましたね。約束通り食べないであげましょう」
・・・
はい、もちろんネタです。
矛盾を起きないようにするにはこれくらいしか思いつきませんでした。
ちなみに、この処理順の問題はカードゲーム界隈で起こりがちです。
ここからは身近なパラドックスを紹介します。
まずは忘れ物のパラドックスです。
出かけるとき「忘れ物ない?」と母親によく言われるのですが、忘れ物は忘れた時点で発覚するので、出かける前に忘れ物があるかどうか答えられないということです。
聞かれた時点で忘れ物を思い出せなければ「現時点では、ない」が正しく、聞かれた時点で思い出したら「ある」が正しいです。
もし「現時点では、ない」と答え、時間が経って忘れ物に気付いたとしても嘘にはなりません。
未確認飛行物体をUFO(Undefined Flying Object)といいます。
このUFOには宇宙人がよく乗っていたりします。
そうするとUFOは宇宙人の乗り物として定義付けされ、未確認飛行物体ではなくなり、矛盾してしまいます。
「宇宙人が乗ってるの確認してんじゃん」という。
未確認生物も同様です。
「占いは統計」という人がいたら、その人は統計に詳しくないと思ってもらっても結構です。(実際にいました)
その人が本当に統計に詳しい人なら「占いは統計でない」ということが分かります。
つまり、その占い師が嘘つきということになります。
もし「占いは統計」が本当であれば、それを占いと称する必要性がありません。
ただの「統計に基づく分析」で終わります。
よくある「パラドックスを紹介します」という記事は紹介だけで終わることが多いので、どうすれば矛盾が解消するかを考えてみると面白いと思います。
例えば、プログラミングをするときには矛盾を起きないするようにすることが大事です。
矛盾が起きるということは、システム全体が破綻しているということだからです。
例えば、砂山のパラドックスで人によって砂山かどうか判断が変わる、というような曖昧な設定は許されず、100人中100人が判断できるようにしなければなりません。
そのために、「1000粒を砂山とする」というようなルールを作ったわけです。