2016-06-01から1ヶ月間の記事一覧
直前のエントリのはシンプルなネタだが、いざ実際に実装しようとするとカナーリ面倒なことに気がつく、 いや複雑な作り込みを要するという意味ではなくて、慎重に考えねば意図したものとは全然違った確率の計算になってしまう危険性が多きいすぐる、 ぶっちゃけ…
ハッシュ関数のバリデーション いま何か適当な分布(一様とは限らない)に従い生起する事象sがあったとして、ハッシュ関数fでもってハッシュキーhをh=f(s)として作ったとする このとき(sの分布は一様とは限らないにもかかわらず)hの剰余h % Nは有限の区間[…
例の聖なる書物には配列表現で実現することしか書いていないので、配列以外の表現は禁忌に抵触する 故に配列表現の高速化を試みた特に飛び駒の利きとOUのPINについては、フツーに作ると駒のmake moveの度に、駒の除去に際して一旦消して、駒を置いた直後に書き…
例えば将棋とかは9×9マスなので、フツーに作ると9×9ぐらいの2次元配列になるが、盤面を配列方式で表す技法を記した例の聖なる書物には2次元配列では遅いから1次元配列にしなさいと書いてあった 例えば、筋s、段dの駒をboard[(s この(s ところがやってみると例え…
いま二次元配列x[i][j]が任意のi, jについてx[i][j] = x[j][i]を満たすとする*1 フツーに作ると(iの上限+1)×(jの上限+1)語ぐらいの記憶域が要るが、常に 高次側のindex < 低次側のindex とする約束とせば、 k = S(i, j) = (i * (i - 1)) / 2 + j というindex k…