加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 十进制数的二进制邻居

发布时间:2020-12-20 11:07:58 所属栏目:Python 来源:网络整理
导读:假设我有0到2 ^ L之间的十进制数.这些十进制数中的每一个都可以表示为长度为L的二进制数.我现在对一个函数感兴趣,该函数只取一个十进制数,然后计算所有L个十进制数,二进制表示只在一个位置上有所不同.我对这个问题的最快解决方案感兴趣. 例: L = 3 – 0到7
假设我有0到2 ^ L之间的十进制数.这些十进制数中的每一个都可以表示为长度为L的二进制数.我现在对一个函数感兴趣,该函数只取一个十进制数,然后计算所有L个十进制数,二进制表示只在一个位置上有所不同.我对这个问题的最快解决方案感兴趣.
例:

L = 3 – > 0到7之间的数字
F(2)=(0,3,6)
以来
2 = 010 – > 0 = 000,3 = 011,6 = 110

希望你有一个想法,并提前感谢:)

解决方法

您可以使用位移来执行此操作:

def neighbors(n,bitLength):
    return map(lambda b: n ^ (1 << b),range(bitLength))

>>> print(list(neighbors(2,3)))
[3,6]

它们是关于可以用经典计算机完成的最快的数学运算,而对于2的幂,它们是完美的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读