以前の記事(↓)の続きです。 eukaryote.hateblo.jp 符号なし64bit整数を8x8 bitboardとみなして(1)横方向に鏡映 (2)縦方向に鏡映 (3)行列転置 という3つの処理をこの順番でやってもやらなくてもよいとしたとき、結果得られる最大8通りのbitboardのうち整数としての値が最小のものを得たいという問題を考えます。ベースラインとなるナイーブな実装は以下のようになります: //horizontal_mirror, vertical_mirror, transposeの実装は省略 uint64_t get_unique_naive(const uint64_t …