首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python上固定长度二进制数上的二进制重合数

问python上固定长度二进制数上的二进制重合数
EN

Stack Overflow用户
提问于 2018-10-20 13:51:57
回答 1查看 42关注 0票数 0

所以,我需要一个python函数来计算二进制数,这些二进制数是用二进制语言写成的,但是长度是固定的。例如,如果n = 8是二进制长度,那么:

代码语言:javascript
复制
a = 0011 0110
b = 0101 1111
--------------
c = 1001 0110 -> 4

应该得到4的结果。C上的每个0都是非重合的,而每个1表示重合。当c有4的时候,结果是4。

我需要它是尽可能快的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-20 13:51:57

这是我认为非常有效的最后一个解决办法:

代码语言:javascript
复制
bin(a ^ b)[2:].zfill(n).count("0")

解释逻辑是使用xor来获得巧合的数量。使用XOR,我实际上得到了问题中所做的例子的反面,因为巧合意味着0,而非重合意味着1。因此,我不得不否定它,但在此之前,我应该确定n的大小,因为答案实际上是110 1001,所以我将得到一个3而不是4的响应。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52906396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档