プログラミング教室で使用するScratchで、球の落下をシュミレートしてみました。
球1つの落下プログラムに間違いはないようでした。ところが、同じプログラムで複数の球を時間差で落下させると、落下や上昇を繰り返すうち、球の動きにずれが生じます。
厳密な機械による計算なのに、なぜズレが生じるのでしょうか?
原因は、跳ね返りや頂上部など、動きの変換点の前後で差が生じていき、繰り返すうちに大きくなることが分かりました。
コンピューターの「厳密さ」とは、人が考えるものとは、少し性質が異なるものなのです。
この問題は、連動するプログラムの難しさや衝突判定のすり抜け問題へと繋がります。
現実世界では再現の難しい、コンピューターならではの美しい動きだと思います。