Python 生成6位二进制整数的所有可能组合(每个数字可以是0或1)
我想生成所有二进制整数的列表,其中每个数字位置可以是0或1:Python 生成6位二进制整数的所有可能组合(每个数字可以是0或1),python,combinations,Python,Combinations,我想生成所有二进制整数的列表,其中每个数字位置可以是0或1: 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 .... 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 我知道整数的总数将是2^6=64,其中前32个整数将是从左向右看的底32个整数的镜像 我不太清楚如何在python中实现这一点。我一直在修修补补,但没有弄清楚是否有一个预构建的函数可以通过一个简单的调用来实现这一点。您可以递归地执行此操作,每一步都分为一个分支,在其中选择0,在
1 1 1 1 1 1
1 1 1 1 1 0
1 1 1 1 0 1
....
0 0 0 0 1 0
0 0 0 0 0 1
0 0 0 0 0 0
我知道整数的总数将是2^6=64,其中前32个整数将是从左向右看的底32个整数的镜像
我不太清楚如何在python中实现这一点。我一直在修修补补,但没有弄清楚是否有一个预构建的函数可以通过一个简单的调用来实现这一点。您可以递归地执行此操作,每一步都分为一个分支,在其中选择0,在另一个分支中选择1
def AllBinaryNumbers(s="", limit=6):
if len(s) == limit:
print(s)
else:
AllBinaryNumbers(s + "0")
AllBinaryNumbers(s + "1")
您也可以只使用内置的bin函数,该函数将整数转换为二进制表示形式
a=[]
N=6
for i in range(2**N):
a.append(f'{bin(i)[2:]:0>{N}}')
itertools
模块有一个函数可以实现这一点。只需循环0到2^6-1之间的整数,并将其转换为二进制。@CoolBots-很抱歉,我正在使用我兄弟的笔记本电脑,他已经登录,所以我没有意识到我从他的帐户发布了这个问题-他是一个享有盛誉的人。我弟弟现在在这个国家的另一边,找不到他,否则我会问他的。对给您带来的不便表示歉意。另一方面,我是一个完全的编码新手。让我再修改一下。对不起,我在python a=[]
中有第一行,我尝试使用N而不是6使它更通用,但注意到格式化字符串不太容易支持变量作为格式说明符。但不幸的是,这条线没有改回来。我现在按照你的建议…再次编辑答案,将变量N作为所需二进制数的位数。
itertools.product([0,1],repeat=6)