タグ

pythonとbit演算に関するcyber_snufkinのブックマーク (1)

  • ビットカウントする高速アルゴリズムをPythonで実装しながら詳しく解説してみる - Qiita

    ビットカウントとは 整数を二進数表示した時、0と1の組み合わせになります。 例えば、十進数の 21 を2進数表示した場合、 0001 0101 のようになります。 この時、 0001 0101 に含まれる1の数を数えることをビットカウントと言います。 0001 0101 の場合、立っているビット数は 3 ですね。 なんてことなさそうな計算ですが、実は、超高速なアルゴリズムがあります。 今回は、このアルゴリズムに触れ、感動した私がそれを解説してみることにします。 ビットカウントのアルゴリズム チェスや将棋、オセロのようなボードゲームAIでは、盤面をBitboardというバイナリで表現することが多いです。 例えば、ある列の駒の数を数える場合、その列に対応するビット列を取り出し、立っているビット数を取得する必要があります。 強いAIを作るためには、高速な計算が必要となります。 全体のビット数分

    ビットカウントする高速アルゴリズムをPythonで実装しながら詳しく解説してみる - Qiita
  • 1