竜太です.
今回は以前書いた『フルオートマティックなタイムマシン』の改良案を思いついたのでお伝えします. これにより,本当にフルオートマティックになりました. その前に実はその時書かなかったことについてお話します.
ロト7は毎週金曜日に当選番号が公式サイトに掲載される
実はロト7の一等当選番号は公式サイトに毎週金曜日に掲載されます. ですから,実は以前書かなかったのですが,タイムマシンを公式サイトの情報をネットでもらってくるようにしておけば, 当然ロト7に必ず当選することができたのです. タイムマシンの機能を考えれば当然ですが,これは実用的ですが面白みがないですね. しかもプログラムの組み方がちょっとだけ複雑になります. どうにかもっと楽なプログラムを作れないものか考えてみましょう.
承認ボタンの付いたプログラム
そこで次のようなプログラムを考えます. 当選番号をネットから拾ってくることはせずに,過去に当選番号が未来から送られてきたらその当選番号が本当に当選していたら承認ボタンを押すだけで, 過去に送り,実際には外していたら,承認ボタンは押さずに,手入力で正しい当選番号を入力してから過去に送るというものです. これをプログラムで行うと,未来から正しい当選番号が送られてきたときは承認ボタンを押すだけで過去に正しい当選番号を送れ, 間違った当選番号が送られてきた場合だけ,手入力で正しい当選番号を入力することになるわけですが,実際には間違った当選番号が送られてくることは決してないのがみそです. というのも,間違った当選番号が送られてくる過去は,正しい当選番号を手入力する未来につながっているため,実際には正しい当選番号しか送られてこないからです. これで未来に承認ボタンだけ押せばよいことが分かりました.
承認ボタンを放置すると自動で押すプログラム
ここで次のような改良案が浮かびます. 一定時間内の間に正しい当選番号を入力する操作を行わなかったら,それは過去に受け取った当選番号が正しい当選番号であるものと解釈して,承認ボタンを自動で押してしまうというものです. こすすると,実際にはタイムマシンの管理者は間違った当選番号の場合だけこの一定時間内に手入力で正しい当選番号を入力しますが,正しかったら何もする必要はなくただ放置するだけで, 勝手に承認ボタンが押されて過去に正しい当選番号が送られます. このコードを実行すると,実際には承認ボタンを押す必要がないのは明らかですが,それだけでなく,手入力で正しい当選番号を入力する必要すらなくなります. なぜなら,必ず正しい当選番号が送られてくるからです. こうして承認ボタンすら押す必要のない本当にフルオートマティックなタイムマシンのコードが書けたことになります.
ネットから当選番号をもらってない
このプログラムには奇妙な点があります. それは
- ネットから正しい当選番号をもらってない
- 正しい当選番号を手入力できる機能はあるが実際にはする必要がない
- 承認ボタンはついているが実際には押す必要がない
ことです. このプログラムは非常に幼稚なプログラムなので,タイムマシンさえあれば初級プログラマーにも容易に作ることができます. 一方,ネットから正しい当選番号を拾ってくるプログラムは,十分易しいとはいえネットワークの知識が少しだけ必要です. そして何よりも,動作が面白いのはこのコードの方でしょう. 一見するとどこにも当選番号が送られてくる原理がないようですが,これでもきちんとほぼ100%の確率で未来から正しい当選番号が送られてきて, しかも何もする必要がないのです.大変面白いですね.
未来から正しい当選番号を送ってくるプログラムは完成した!
こうして,非常に不思議ではあるものの,未来から正しい当選番号を送ってくるプログラムが完成しました. きっとタイムマシンの管理者のアリスも喜んでいることでしょう.
ここまで読んでくださって有難うございます. 何か間違い等ございましたら,ご報告いただけると幸いです^^