忍者ブログ

Memeplexes

プログラミング、3DCGとその他いろいろについて

タイムマシンコンピューターをシミュレートする その2

未来から受け取った情報をわざと変更してみます。もちろん、これはタイムトラベルのシミュレーションなので、「本当に」未来から受け取っているわけではありませんが、結果は同じです。


ソースコード

var results = TimeMachine.run(1, (timeMachine) => {
	var data = timeMachine.fromFuture();
	data = 0;
	timeMachine.toPast(data);
});

for(var result of results){
	console.log(result);
}

実行結果

0

解説

このプログラムは1ビットの情報(つまり0か1)を未来から受け取り、それに0を代入して、過去に送り返します。私たちは、このとき未来から受け取る情報は必ず0だと確信できます。なぜかというと、もし未来から受け取った情報が1だったばあい、過去に0を送るのはタイムパラドックスを引き起こすからです(1を受け取ったなら1を返さなければいけません)。

これは面白いです。私達が0を代入したのは、0というデータが(タイムマシンによって)この世に生まれたです。普通のプログラムなら、「0を代入したからその変数は0になる」のですが、ここでは「あとで0を代入することになるからその変数は0になる」のです。因果律の崩壊が実感できてわくわくします!

拍手[0回]

PR