gpt4 book ai didi

python - 如何生成所有整数 i, n & i == n (保持位长)

转载 作者:太空宇宙 更新时间:2023-11-04 10:21:56 24 4
gpt4 key购买 nike

我正在尝试提出一种有效的算法来生成所有整数 i、n 和 i == n。例如,对于 n == 4bin(n) == '0b100',我需要生成:

4 ('0b100')
5 ('0b101')
6 ('0b110')
7 ('0b111')

如何在 Python 中高效地做到这一点?

最佳答案

您可以简单地通过递增 i 并确保 n 中的位保持设置来获得:

def next(n):
i = n
while (i >> 1) < n:
yield i
i = (i + 1) | n

这里我假设当 i 需要的位数超过 n 时,您想要退出迭代。

关于python - 如何生成所有整数 i, n & i == n (保持位长),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31767993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com