その他
    ホーム 技術発信 DoRuby 壁貫通バグ!?現実世界の不思議な仕様
    壁貫通バグ!?現実世界の不思議な仕様
     

    壁貫通バグ!?現実世界の不思議な仕様

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    今回は現実世界のバグのようなものについてご紹介します。

    はじめに

    ゲームをプレイしていると、たまに出会うことがあるバグ。その中の一つに、本来通り抜けられない壁を越えてしまえるバグなんてものがあります。
    私にも、四天王の最後のフロアで柱になみのりを…なんてバグで遊んでいた記憶があります。
    ゲーム制作側としては、バグなんてあってはならないものですが、ゲームをプレイする側で考えると、見つけられるとちょっと楽しくなりませんか?
    今回の記事は、ゲームではなく、現実世界で、壁抜けバグのような現象があるようなので、それを紹介したいと思います。

    ミクロな世界

    今回紹介する現象は、非常に小さいミクロな世界で確認されている現象なので、まずはミクロな世界について少しお話します。(逆にこの記事では私たちが普段見ている世界をマクロな世界と呼びます。)
    物体を、その構成要素に分けていくと、最終的には非常に小さい粒子にたどり着きます。
    例えば、水は化学式でH2Oと書かれますが、これを分けていくと次のようになります。
    水 ⇒ 水分子 ⇒ 酸素原子、水素原子 ⇒ 陽子、中性子、電子
    この陽子、中性子、電子のような非常に小さい粒たちが今回紹介する現象の主役になります。
    ちなみに、どれぐらい小さいかという有名なたとえとして、
    ピンポン球の原子とピンポン球の大きさの比は、ピンポン球と地球の大きさの比と同じぐらいだそうです。
    enter image description here

    トンネル効果

    名前の通り、壁を通り抜けそうな名前ですが、今回の現象の名前が「トンネル効果」です。
    ミクロな粒子たちは、常に動き回っているため、「どこにある」という表現ではなく、「どこらへんにいそう」という表現をします。
    つまり、場所がきっちり決まるのではなく、場所を存在確率で表現します。「ここにいます!」というのではなく、「この辺に良くいます!」といった言い方でしょうか。
    ミクロな粒子について、粒子を壁ぶつけることを考えると、壁の向こう側の存在確率が0にならないことがあります。
    つまり、壁の向こう側にも粒子が存在できてしまうのです。これをトンネル効果と呼びます。
    私たちが見ているマクロな世界では、壁がどんなに薄くても、物体が壁の向こうに行くことはまず考えられません。
    しかし、上述のように、マクロな世界は、ミクロな世界の粒子が多数集まって構成されており、そしてミクロな粒子一つ一つには壁を超える可能性を持っています。つまり、非常に低い確率ではありますが、マクロな世界でも壁を超える可能性があるということになります。

    ※ちなみに、この「トンネル効果」はすでに半導体や顕微鏡などに応用されている現象です。
    顕微鏡に応用されている例を紹介しますと、トンネル効果を応用した顕微鏡は「走査型トンネル顕微鏡」と呼ばれ、細い金属針を物体表面に近づけて、トンネル効果で電流が流れてくるときの電流の強さによって、物体表面の原子レベルの凹凸まで判断できる超高精度な顕微鏡です。
    enter image description here

    人間が壁をすり抜ける確率概算

    ネットを調べてみても、現実世界のトンネル効果について言及している記事があまりなかったので、ここでは私が適当な数字を当てはめて計算してみようと思います。
    調べたところ、人間の体重の65%程度は酸素原子の重さのようなので、簡単のため人間が100%酸素で構成されていると考えます。
    ここでは酸素原子一粒が壁を越えられる確率を10%とします。(酸素原子はすでに陽子、中性子、電子の集合体なので、実際にはもっと低いはずです。)
    酸素原子Oの原子量は16なので、6*1023 個集まると16グラムになります。
    体重64キロの人間を考えると、体重が酸素の原子量の4000倍なので、4000×6×1023 個=2.4×1027 個、酸素原子が集まっていることになります。
    後は、これらが通り抜ける確率50%を一斉に引ければいいので、
    0.1の2.4×1027 乗を計算すれば良いということになります。
    これを直接電卓に入れるとエラーになって答えが出ないので、概算します。
    2.4×1027 ≒1027 として、0.11027なので、0.の後ろに0が1027 個続くぐらい小さな確率です。
    では、どのぐらいの確率なのか行動に移してみましょう。
    仮に、宇宙が始まってから今日まで1秒に一回ずつ壁にぶつかり続けるとしましょう。宇宙を約140億年とすれば、1年は3*107 秒なので140億年では4.2*1017 回壁にぶつかれます。
    すると、すり抜けられる確率は、4.2*1017 / 1027 ≒1/1010 ⇒100億分の1ということで、このペースだと100億分の1程度ということになります。
    つまり、1秒間に100億回かべにぶつかりつづければ、宇宙が始まってから現在までに1回ぐらい壁抜けが出来るかもしれませんね。

    終わりに

    いかがでしょうか。自分の概算ではありますが、宇宙始まってから毎秒100億回かべにぶつかってくれるデバッカーがいないと気づけないバグなんて大変なことですね。
    これがバグなのか仕様なのかは創り手のみぞ知るということで、この世界にはまだまだ不思議な仕様が眠っていそうでわくわくします。