我目前正在使用 z3 的 python api 计算位向量的权重。
在通过 python API 搜索更直接的方法之后,我正在st1
以下列方式实现位向量的权重函数:
Sum([( (st1 & (2**(i)))/(2**(i)) ) for i in range(bits)])
我的问题相对简单,有没有更简单/更有效的方法?
我遇到的问题包含 1500 多个这些重量限制,并希望确保我尽可能高效地做事。
编辑:我将添加以下说明,我试图计算的内容有一个名称(它是汉明权重),我知道有非常有效的方法可以在命令式语言中实现功能,但最终我正在寻找什么是否有任何底层方法可以访问 z3 位向量的各个位。