printf と量子力学 | 羊雲

printf と量子力学

この関数を呼ぶと値がおかしくなる。バグである。参ったなぁ…と思って printf でデバッグしようとすると…。

おかしい…。

治った。

printf で画面に表示される文字列はどれも正常な値ばかり。変だと思って、デバッグ用に入れてた printf を削除するとやっぱり動作がおかしくなってしまう。

奇妙だ…。printf で画面に文字を表示させるとバグが治る…。

量子力学の考えでは、電子や光子などの微細な粒子は、観測する事でも影響を受け、状態が変わる事があるという。観測するまでは、2つの状態が重ね合わさった状態で、観測するといづれかの状態が決定する様な原理が成り立っている。これを重ね合わせの原理という。

えぇっ!!もしかして、オレ重ね合わせをエミュレートしちゃってるっ!?

このバグは超量子的な不具合で、printf をするまで、不正な値と正しい値が重ね合わさった状態で、printf すると正しい動作にしかならないという感じですか?

これはやっかいだ…。量子論に対抗できるようなコードが思いつかない。

シュレイディンガーさん助けて下さい。オレの猫はやっかいです。

…やった事ある人は分かると思いますが、こういう時って、キャストミスとか、バッファオーバーフローとかで、値を壊している時が多いです。C だと特に、アドレス渡し、値渡しとあって、データの代わりにアドレスが返ってくる事も、やってしまったりします。printf するとたまにアドレスのマッピングが良い感じに変更されて、値が出力される事があるようです。

&を一個取るのに3日かかりました。