サイコロ、オモテとウラ
2025.08.17
プログラムが残っていました。中学生の頃の古いノートからです。

改良前のプログラムで、バカ正直にIF文で処理しています。




バカだなあ・・・と笑ってやってください。
一方で、動けばいいんだ、という考えの方もいらっしゃると思います。

オモテとウラ、というのはコインの裏表の確率をシミュレーションしています。

乱数RNDはゼロから指定の数値未満まででした。確か。
それにわざわざ+1して1~6にしたのでしょうけど、最初から1~6を0~5に置き換えて処理したって構わないわけです。
表記としてはわかりにくくなるかもしれませんが、計算をひとつ削って処理時間を少しでも節約できます。

冒頭のRND(-TIME)は乱数のタネでしょう。(初期値)TIME変数を元にしています。

それから、
いま何回目かを常時表示しているとその表示に時間をとられます。そこで、たとえば100回とか1,000回おきに表示したかった。
これも馬鹿正直にIF文で判定させています。そうじゃなくて、1,000で割り切れて余りが0かどうか見ればよかったのではないか。あるいは、別にカウンタを回してIFで判定するほうが早ければそっちを採用しても良かったのではないか。

当時そのことは気づいていて、実際にそのような判定を入れた記憶があります。

処理速度を上げるには、整数型変数を使うようにプログラム先頭にDEFINT A-Zとすれば改善が見込めたものと思います。
しかし32767までしか扱えないのと、相対度数の計算で小数点が出てきます。
とりあえず3万回までのシミュレーションに限定すればよいでしょう。
あとは、相対度数の計算に関係する変数だけ浮動小数点のままにすればよかったでしょう。
トラックバックURL
トラックバック一覧
コメント一覧
コメント投稿

名前

URL

メッセージ

- CafeLog -