続・計算量を減らす:ループ内の処理を短くすることは効果大
昨日、
taichiw.hatenablog.com
なるものを書いたわけなんですが…
小細工を考える前にコードそのものの見直しをすべきかも
というお話。
結論から言うと、
一行変えただけで3分弱→30秒、5~6倍、驚きの速さにwwwww
変えたのこれだけ。
github.com
従来、打席毎に乱数インスタンスを生成していた(=乱数の初期化がされていた)のをやめ、インスタンス変数にしました。
Playerクラスは1シーズン、143試合の開始時に9人分生成されているため、
1試合最低27打席 ✕ 143試合=3861回(以上) newしていたのが、 9回のみのNewに。
すると、この処理の実行時間が…
バッティング毎に乱数初期化していたとき
167秒、152秒、… だったのが
Player毎に乱数初期化
29秒、30秒、26秒、29秒、… に。
どぇぇぇ。変わりすぎやろ。