sekai013's blog

JavaScriptとかを勉強する

ポーカーのエクイティ計算機を JavaScript で書いたら計算に時間がかかりすぎて使い物にならなかった

エクイティもしくはポット エクイティは、プレイヤーの長期的な勝利見込みに基づいて彼に与えられるポットのシェアを指します。
出典: 用語集: エクイティ - PokerStrategy.com

ストラテジー先生分かりにくい説明ありです(´・ェ・`)

Windows で使ってた Equilab が使えなくなったので書き始めたら、役判定どうしようとか考えるのが楽しくて10時間くらい考え続けて一気に大枠を完成させて、翌日ランダムハンド同士で20万回の試行をやってみたら33秒もかかってしまって、何でもかんでも JavaScript で書けばいいってもんじゃないってことを実感した。 コードの書き方が悪いのもあるだろうけど、同じようなエクイティ計算ツールでは100億回の試行を1秒かからずに処理しているので言語による実行速度の差も大きいんだろうなぁという気がする。 今まで扱ったことのあるような処理の量だと何で書いてもどんな適当な書き方でもマシンの性能でなんとかなってたところがあるけど、ちょっと計算量が多くなると効率的に書くとか、そもそも何で書くかとか選ぶのも大事なんだなぁとおもいました(小並感)