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之间的数字 希望你有一个想法,并提前感谢:) 解决方法
您可以使用位移来执行此操作:
def neighbors(n,bitLength): return map(lambda b: n ^ (1 << b),range(bitLength)) >>> print(list(neighbors(2,3))) [3,6] 它们是关于可以用经典计算机完成的最快的数学运算,而对于2的幂,它们是完美的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |