現在、z3 の python api を使用してビットベクトルの重みを計算しています。
st1
より簡単な方法を Python API で検索した後、次の方法でビットベクトルの重み関数を実装しています。
Sum([( (st1 & (2**(i)))/(2**(i)) ) for i in range(bits)])
私の質問は比較的簡単です。より簡単で効率的な方法はありますか?
これらの重みの制約が 1500 以上含まれている問題があり、できる限り効率的に作業を進めたいと考えています。
編集:次の説明を追加します。計算しようとしているものには名前があります(ハミングウェイトです)。命令型言語で機能を実装する超効率的な方法があることは知っていますが、最終的には私が探しているものz3 ビットベクトルの個々のビットにアクセスするための基本的なメソッドがあるかどうかです。