メモリが増えないのが悪い

お昼休みにblog更新。


玉が動いた時の3駒評価の差分計算について。

http://yaneuraou.yaneu.com/2015/09/24/kpp%E5%B7%AE%E5%88%86%E8%A8%88%E7%AE%97%E3%81%AE%E9%AB%98%E9%80%9F%E5%8C%96bonasse%E3%81%AE%E5%8A%9F%E7%BD%AA%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/


結構前に知ってたはずだけれど、結局実装していなければ
「知ってたわー、それ2年前から知ってたわー」
っていう、ただのミサワ状態なので、やらないとね。


一応何でやらなかったかというと、高速化は確実に強くなるけれど、強くなる上限も見えているので、もっと優先する事がある場合はどうしても後回しになってしまうからかな。
僕は実装遅いのでリソースどこに回すか結構重要なんだけれど、
実装が速く出来る人は、分かっている高速かはじゃんじゃんやってしまえば良いとは思う。


あと、この高速化しなかったもう一つの理由としては、
KPP は通常2つの玉に対して計算するのだけれど、
KKPP に事前に展開しておくと、KK という1つの玉の状態について計算すれば済むので、
テーブル参照が半分程度になります。
KKP も KKPP に事前に足し込んでしまえば良いですね。
こうすれば、玉が動いたときも、テーブル参照は元から半分になっているので今まで通り再計算してしまえば良いです。


ただ、これをするには大量のメモリが必要です。
ぼけーっと待っておけばメモリが増えると昔は思っていたのですが、
最近ずっとメモリの値段は高いし、サイズ増えないし。。。
ってことで、ハードの進化を待っている訳にもいかなくなったので、
玉が動いたときの差分計算、ようやく今回は実装しようかなって思った。