每n个项目可以有m个状态,我们可以通过m次迭代在彼此内部编写n个循环,但是问题是,当n更改为n + 1时,我们需要添加另一个循环...
我要为n = 3,m = 2生成的表如下:
m = 2
n = 3
for i in range(m):
for j in range(m):
for k in range(m):
print(i+1, j+1, k+1)
1 1 1
1 1 2
1 2 1
1 2 2
2 1 1
2 1 2
2 2 1
2 2 2
当n = 4时,m = 2
for i in range(2):
for j in range(2):
for k in range(2):
for l in range(2):
print(i+1, j+1, k+1, l+1)
1 1 1 1
1 1 1 2
1 1 2 1
1 1 2 2
1 2 1 1
1 2 1 2
1 2 2 1
1 2 2 2
2 1 1 1
2 1 1 2
2 1 2 1
2 1 2 2
2 2 1 1
2 2 1 2
2 2 2 1
2 2 2 2
如何编写可以使用任何m和n值的代码?
答案 0 :(得分:0)
如果您为作业使用正确的工具(在本例中为itertools.product
),则会获得动态解决方案:
from itertools import product
m = 2
n = 3
print('\n'.join(' '.join(map(str, prod)) for prod in product(range(1, m + 1), repeat=n)))
输出
1 1 1
1 1 2
1 2 1
1 2 2
2 1 1
2 1 2
2 2 1
2 2 2
现在,如果发生某些更改,只需更改m
和n
的值即可。