有5道不定项选择题目,每题有A,B,C,D四个选项,至少有一个是对的,怎样生成这5道题目所有的回答可能?
(A,B,C,D,A)、(A、B、C、D、B).......(AB,ABCD,AB,B,C)
有5道不定项选择题目,每题有A,B,C,D四个选项,至少有一个是对的,怎样生成这5道题目所有的回答可能?
(A,B,C,D,A)、(A、B、C、D、B).......(AB,ABCD,AB,B,C)
上班偷偷写的, 用了两次回溯,第一个get_str利用回溯找到所有单个问题的答案可能的选项,第二个回溯get_answer直接找出所有答案。写的不好多担待。
li = ['a', 'b', 'c', 'd']
def get_str(str_list, length, index):
ans = []
if len(str_list) == length:
return ''.join(str_list)
for i in range(index, 4):
str_list.append(li[i])
temp = get_str(str_list, length, i+1)
str_list.pop(-1)
if isinstance(temp, str):
ans.append(temp)
else:
ans.extend(temp)
return ans
def get_answer(all_str, ans_list, length):
# ans = []
if len(ans_list) == length:
print(ans_list)
return
for str_ in all_str:
ans_list.append(str_)
get_answer(all_str, ans_list, length)
ans_list.pop(-1)
all_str = []
for i in range(1, 5):
all_str.extend(get_str([], i, 0))
get_answer(all_str, [], 5)
2 回答4.3k 阅读✓ 已解决
2 回答863 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答857 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
4 回答2.6k 阅读
3 回答906 阅读✓ 已解决