2018年刑侦推理试题解答-python
2018-03-07 15:13
519 查看
初学python,对热门的 "2018年刑侦推理试题解答"-python
最后优化的结果是 0.88秒求出答案。
B C A C A C D A B A
用时0.8816297054290771秒
def v2(a2,a5):
if (a5 == 'C') and a2=='A':
return True
elif (a5 == 'D') and a2=='B':
return True
elif (a5 == 'A') and a2=='C':
return True
elif (a5 == 'B') and a2=='D':
return True
else:
return False
def v3(a,a3,a6,a2,a4):
if a=='A':
return (a3!=a6) and (a3!=a2) and (a3!=a4)
elif a=='B':
return (a6!=a3) and (a6!=a2) and (a6!=a4)
elif a=='C':
return (a2!=a3) and (a2!=a6) and (a2!=a4)
else: #'D'
return (a4!=a3) and (a4!=a6) and (a4!=a2)
def v4(a,a1,a5,a2,a7,a9,a6,a10):
if a == 'A':
return a1 == a5
elif a == 'B':
return a2 == a7
elif a == 'C':
return a1 == a9
else:# answer = 'D':
return a6 == a10
def v5(a,a8,a4,a9,a7):
if a == 'A':
return a == a8
elif a == 'B':
return a == a4
elif a == 'C':
return a == a9
else : #answer == 'D':
return a == a7
def v6(a,a8,a2,a4,a1,a6,a3,a10,a5,a9):
if a == 'A':
return a8 == a2 and a8 == a4
elif a == 'B':
return a8 == a1 and a8 == a6
elif a == 'C':
return a8 == a3 and a8 == a10
else : #answer == 'D':
return a8 == a5 and a8 == a9
def v7min(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10):
stats = [0,0,0,0]
for i in [a1,a2,a3,a4,a5,a6,a7,a8,a9,a10]:
stats[ int(i,16)-0xA ]+=1
index = stats.index(min(stats))
return ['A','B','C','D'][index]
def v7(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10):
minA = v7min(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
if a7 == 'A':
return minA =='C'
elif a7 == 'B':
return minA == 'B'
elif a7 == 'C':
return minA == 'A'
else : #answer == 'D':
return minA == 'D'
def v8(a8,a1,a7,a5,a2,a10):
answer1 = int(a1,16)
if a8 == 'A':
return abs(int(a7,16)-answer1)!=1
elif a8 == 'B':
return abs(int(a5,16)-answer1)!=1
elif a8 == 'C':
return abs(int(a2,16)-answer1)!=1
else : #answer == 'D':
return abs(int(a10,16)-answer1)!=1
def v9(a9,a6,a5,a10,a2,a1):
if a9 == 'A':
valY = (a6 ==a5)
elif a9 == 'B':
valY = (a10 ==a5)
elif a9 == 'C':
valY = (a2 ==a5)
else : #answer == 'D':
valY = (a9 ==a5)
valX= (a1 ==a6)
return valX!=valY
def calDiff(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10):
stats = [0,0,0,0]
for i in [a1,a2,a3,a4,a5,a6,a7,a8,a9,a10]:
stats[ int(i,16)-0xA ]+=1
maxV = max(stats)
minV = min(stats)
return maxV-minV
def v10(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10):
count = calDiff(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
if a10 == 'A':
return count == 3
elif a10 == 'B':
return count==2
elif a10 == 'C':
return count == 4
else : #answer == 'D':
return count == 1
def verify(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10):
#skip 1 always true
#question 2
if v2(a2,a5) == False:
return False
if v3(a3,a3,a6,a2,a4) == False:
return False
if v4(a4,a1,a5,a2,a7,a9,a6,a10) == False:
return False
if v5(a5,a8,a4,a9,a7) == False:
return False
if v6(a6,a8,a2,a4,a1,a6,a3,a10,a5,a9) == False :
return False
if v7(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) == False:
return False
if v8(a8,a1,a7,a5,a2,a10) == False:
return False
if v9(a9,a6,a5,a10,a2,a1) == False:
return False
if v10(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) == False:
return False
return True
import time
time1 = time.time()
for a1 in ['A','B','C','D']:
for a2 in ['A','B','C','D']:
for a3 in ['A','B','C','D']:
for a4 in ['A','B','C','D']:
for a5 in ['A','B','C','D']:
for a6 in ['A','B','C','D']:
for a7 in ['A','B','C','D']:
for a8 in ['A','B','C','D']:
for a9 in ['A','B','C','D']:
for a10 in ['A','B','C','D']:
if verify(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) :
print(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
time2 = time.time()
print('用时%s秒'%(time2-time1))
最后优化的结果是 0.88秒求出答案。
B C A C A C D A B A
用时0.8816297054290771秒
def v2(a2,a5):
if (a5 == 'C') and a2=='A':
return True
elif (a5 == 'D') and a2=='B':
return True
elif (a5 == 'A') and a2=='C':
return True
elif (a5 == 'B') and a2=='D':
return True
else:
return False
def v3(a,a3,a6,a2,a4):
if a=='A':
return (a3!=a6) and (a3!=a2) and (a3!=a4)
elif a=='B':
return (a6!=a3) and (a6!=a2) and (a6!=a4)
elif a=='C':
return (a2!=a3) and (a2!=a6) and (a2!=a4)
else: #'D'
return (a4!=a3) and (a4!=a6) and (a4!=a2)
def v4(a,a1,a5,a2,a7,a9,a6,a10):
if a == 'A':
return a1 == a5
elif a == 'B':
return a2 == a7
elif a == 'C':
return a1 == a9
else:# answer = 'D':
return a6 == a10
def v5(a,a8,a4,a9,a7):
if a == 'A':
return a == a8
elif a == 'B':
return a == a4
elif a == 'C':
return a == a9
else : #answer == 'D':
return a == a7
def v6(a,a8,a2,a4,a1,a6,a3,a10,a5,a9):
if a == 'A':
return a8 == a2 and a8 == a4
elif a == 'B':
return a8 == a1 and a8 == a6
elif a == 'C':
return a8 == a3 and a8 == a10
else : #answer == 'D':
return a8 == a5 and a8 == a9
def v7min(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10):
stats = [0,0,0,0]
for i in [a1,a2,a3,a4,a5,a6,a7,a8,a9,a10]:
stats[ int(i,16)-0xA ]+=1
index = stats.index(min(stats))
return ['A','B','C','D'][index]
def v7(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10):
minA = v7min(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
if a7 == 'A':
return minA =='C'
elif a7 == 'B':
return minA == 'B'
elif a7 == 'C':
return minA == 'A'
else : #answer == 'D':
return minA == 'D'
def v8(a8,a1,a7,a5,a2,a10):
answer1 = int(a1,16)
if a8 == 'A':
return abs(int(a7,16)-answer1)!=1
elif a8 == 'B':
return abs(int(a5,16)-answer1)!=1
elif a8 == 'C':
return abs(int(a2,16)-answer1)!=1
else : #answer == 'D':
return abs(int(a10,16)-answer1)!=1
def v9(a9,a6,a5,a10,a2,a1):
if a9 == 'A':
valY = (a6 ==a5)
elif a9 == 'B':
valY = (a10 ==a5)
elif a9 == 'C':
valY = (a2 ==a5)
else : #answer == 'D':
valY = (a9 ==a5)
valX= (a1 ==a6)
return valX!=valY
def calDiff(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10):
stats = [0,0,0,0]
for i in [a1,a2,a3,a4,a5,a6,a7,a8,a9,a10]:
stats[ int(i,16)-0xA ]+=1
maxV = max(stats)
minV = min(stats)
return maxV-minV
def v10(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10):
count = calDiff(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
if a10 == 'A':
return count == 3
elif a10 == 'B':
return count==2
elif a10 == 'C':
return count == 4
else : #answer == 'D':
return count == 1
def verify(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10):
#skip 1 always true
#question 2
if v2(a2,a5) == False:
return False
if v3(a3,a3,a6,a2,a4) == False:
return False
if v4(a4,a1,a5,a2,a7,a9,a6,a10) == False:
return False
if v5(a5,a8,a4,a9,a7) == False:
return False
if v6(a6,a8,a2,a4,a1,a6,a3,a10,a5,a9) == False :
return False
if v7(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) == False:
return False
if v8(a8,a1,a7,a5,a2,a10) == False:
return False
if v9(a9,a6,a5,a10,a2,a1) == False:
return False
if v10(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) == False:
return False
return True
import time
time1 = time.time()
for a1 in ['A','B','C','D']:
for a2 in ['A','B','C','D']:
for a3 in ['A','B','C','D']:
for a4 in ['A','B','C','D']:
for a5 in ['A','B','C','D']:
for a6 in ['A','B','C','D']:
for a7 in ['A','B','C','D']:
for a8 in ['A','B','C','D']:
for a9 in ['A','B','C','D']:
for a10 in ['A','B','C','D']:
if verify(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) :
print(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
time2 = time.time()
print('用时%s秒'%(time2-time1))
相关文章推荐
- PHP编程解答2018刑侦推理试题
- 2018年刑侦科目推理试题
- 网红试题 2018年刑侦科目推理试题 的程序员解法
- 网络热图——2018年刑侦科推理试题——C++求解
- 2018年刑侦科推理试题
- 2018年刑侦科推理试题【JavaScript解法】
- 2018年刑侦科推理试题
- 2018刑侦推理试题
- 离散数学:2018年刑侦科推理试题
- PAT乙级题 1058 python解答
- 软考+软件设计师试题+解答
- [家里蹲大学数学杂志]第387期一套实变函数期末试题参考解答
- [家里蹲大学数学杂志]第283期西安交通大学2008年数学专业复试试题参考解答
- 2005年百度之星程序设计大赛初赛试题与解答 第2题 动态规划解法
- Red Hat Linux - RHCT部分模拟试题 //全部自己解答,如有疑问请纠正//
- 2018年最流行的Python框架
- 北京大学1996年数学分析考研试题参考解答
- 2010年上半年5月份信息系统项目管理师上午试题答案(分析与解答)之十二
- 2010年上半年5月份软件设计师上午试题答案(分析与解答)之九
- (转)迅雷C++试题及解答