递归与迭代的正确打开方式,求解
a =已知a列表的长度14。
如何使用递归方法,生成长度为7的列表,且元素组合不同。。。例如 ((已知b列表长度为3。。b=)...生产长度为2的列表。。..新列表=,.,新列表...新列表=。只有3种组合了 )
如何使用迭代方法,生成长度为7的列表,且元素组合不同。。。例如 ((已知b列表长度为3。。b=)...生产长度为2的列表。。..新列表=,.,新列表...新列表=。只有3种组合了 )
两种方法,打印出生所有生产的列表。。。谢谢 a =
b = []
i = 0
#递归方法(dfs)
def get(l, k):
global b
if l == 0:
print(b)
if len(b) > 0 and b[-1] == 14:
return
for i in range(k+1, len(a)):
b.append(a)
get(l-1, i)
b = b[:len(b)-1]
get(7, -1)
#迭代方法(暴力搜索)
all_answer = []
max_ = 2 ** 14 - 1
for i in range(max_):
if ((i) % 2 +
(i >> 1) % 2 +
(i >> 2) % 2 +
(i >> 3) % 2 +
(i >> 4) % 2 +
(i >> 5) % 2 +
(i >> 6) % 2 +
(i >> 7) % 2 +
(i >> 8) % 2 +
(i >> 9) % 2 +
(i >> 10) % 2 +
(i >> 11) % 2 +
(i >> 12) % 2 +
(i >> 13) % 2) == 7:
all_answer.append( for j in range(14) if (i >> j) % 2])
print(*list(sorted(all_answer)), sep = '\n')
页:
[1]