短视频又刷到了这个推理题,有人说根本不是刑侦科的,就当算着玩吧。
2019年初用python写了个计算的方法,穷举法比较low,但是现在恐怕一种都不会写了。
思路就是每道题先按顺序取一个答案,然后这十道题互相有关联,比如第五题和第二题互相对应,就列出所有可能的情况,第五题是A,第二题就是C。找出所有的关联。不满足的答案删除,继续取下一个答案。第十题要算数,又单写了一点。
choices=['A','B','C','D']
answer=[]
#第一题
for a in choices:
answer.append(a)
#第二题
for b in choices:
answer.append(b)
#第三题
for c in choices:
answer.append(c)
#第四题
for d in choices:
answer.append(d)
#第五题
for e in choices:
answer.append(e)
#第六题
for f in choices:
answer.append(f)
#第七题
for g in choices:
answer.append(g)
#第八题
for h in choices:
answer.append(h)
#第九题
for i in choices:
answer.append(i)
#第十题
for j in choices:
answer.append(j)
if ((answer[4]=='A' and answer[1]=='C') or (answer[4]=='B' and answer[1]=='D') or (answer[4]=='C' and answer[1]=='A') or (answer[4]=='D' and answer[1]=='B')) and ((answer[1]==answer[2]==answer[5]!=answer[3] and answer[2]=='D') or (answer[1]==answer[2]==answer[3]!=answer[5] and answer[2]=='B') or (answer[1]==answer[5]==answer[3]!=answer[2] and answer[2]=='A') or (answer[2]==answer[5]==answer[3]!=answer[1] and answer[2]=='C')) and (((answer[0]==answer[4] and answer[1]!=answer[6] and answer[0]!=answer[8] and answer[5]!=answer[9]) and answer[3]=='A') or ((answer[1]==answer[6] and answer[0]!=answer[4] and answer[0]!=answer[8] and answer[5]!=answer[9]) and answer[3]=='B') or ((answer[0]==answer[8] and answer[0]!=answer[4] and answer[1]!=answer[6] and answer[5]!=answer[9]) and answer[3]=='C') or ((answer[5]==answer[9] and answer[0]!=answer[4] and answer[0]!=answer[8] and answer[1]!=answer[6]) and answer[3]=='D')) and (((answer[4]==answer[3] and answer[4]!=answer[6] and answer[4]!=answer[7] and answer[4]!=answer[8]) and answer[4]=='B') or ((answer[4]==answer[6] and answer[4]!=answer[3] and answer[4]!=answer[7] and answer[4]!=answer[8]) and answer[4]=='D') or ((answer[4]==answer[7] and answer[4]!=answer[6] and answer[4]!=answer[3] and answer[4]!=answer[8]) and answer[4]=='A') or ((answer[4]==answer[8] and answer[4]!=answer[6] and answer[4]!=answer[7] and answer[4]!=answer[3]) and answer[4]=='C')) and ((answer[1]==answer[7]==answer[3] and answer[5]=='A') or (answer[0]==answer[7]==answer[5] and answer[5]=='B') or (answer[2]==answer[7]==answer[9] and answer[5]=='C') or (answer[4]==answer[7]==answer[8]) and answer[5]=='D') and ((((answer[0]=='A' and answer[6]=='C') or (answer[0]=='A' and answer[6]=='D')) or ((answer[0]=='B' and answer[6]=='D') or (answer[6]=='A' and answer[0]=='C') or (answer[6]=='A' and answer[0]=='D') or (answer[6]=='B' and answer[0]=='D')) and answer[7]=='A') or (((answer[0]=='A' and answer[4]=='C') or (answer[0]=='A' and answer[4]=='D') or (answer[0]=='B' and answer[4]=='D') or (answer[4]=='A' and answer[0]=='C') or (answer[4]=='A' and answer[0]=='D') or (answer[4]=='B' and answer[0]=='D')) and answer[7]=='B') or (((answer[0]=='A' and answer[1]=='C') or (answer[0]=='A' and answer[1]=='D') or (answer[0]=='B' and answer[1]=='D') or (answer[1]=='A' and answer[0]=='C') or (answer[1]=='A' and answer[0]=='D') or (answer[1]=='B' and answer[0]=='D')) and answer[7]=='C') or (((answer[0]=='A' and answer[9]=='C') or (answer[0]=='A' and answer[9]=='D') or (answer[0]=='B' and answer[9]=='D') or (answer[9]=='A' and answer[0]=='C') or (answer[9]=='A' and answer[0]=='D') or (answer[9]=='B' and answer[0]=='D')) and answer[7]=='D')):
# print (answer)
A=[]
B=[]
C=[]
D=[]
for k in answer:
if k=='A':
A.append(k)
elif k=='B':
B.append(k)
elif k=='C':
C.append(k)
else:
D.append(k)
if ((len(A)<len(B) and len(A)<len(C) and len(A)<len(D)) and answer[6]=='C') or ((len(B)<len(A) and len(B)<len(C) and len(B)<len(D)) and answer[6]=='B') or ((len(C)<len(A) and len(C)<len(B) and len(C)<len(D)) and answer[6]=='A') or ((len(D)<len(A) and len(D)<len(C) and len(D)<len(B)) and answer[6]=='D'):
# print (answer)
E=[]
E.append(len(A))
E.append(len(B))
E.append(len(C))
E.append(len(D))
E=sorted(E)
# print (E)
if (E[3]-E[0]==3 and answer[9]=='A') or (E[3]-E[0]==2 and answer[9]=='B') or (E[3]-E[0]==4 and answer[9]=='C') or (E[3]-E[0]==1 and answer[9]=='D'):
if (((answer[0]==answer[5] and answer[4]!=answer[5]) or (answer[0]!=answer[5] and answer[4]==answer[5])) and answer[8]=='A') or (((answer[0]==answer[5] and answer[4]!=answer[9]) or (answer[0]!=answer[5] and answer[4]==answer[9])) and answer[8]=='B') or (((answer[0]==answer[5] and answer[4]!=answer[1]) or (answer[0]!=answer[5] and answer[4]==answer[1])) and answer[8]=='C') or (((answer[0]==answer[5] and answer[4]!=answer[8]) or (answer[0]!=answer[5] and answer[4]==answer[8])) and answer[8]=='D'):
print ("正确答案:")
print(answer)
E=[]
del answer[9]
else:
del answer[9]
del answer[8]
del answer[7]
del answer[6]
del answer[5]
del answer[4]
del answer[3]
del answer[2]
del answer[1]
del answer[0]
对代码有点生疏了,又该捡起来复习了。嗯……从明天开始……