老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

用Python對刑偵科推理題進行分析

這篇文章主要介紹用Python對刑偵科推理題進行分析,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

仙桃網站制作公司哪家好,找成都創新互聯公司!從網頁設計、網站建設、微信開發、APP開發、響應式網站建設等網站項目制作,到程序開發,運營維護。成都創新互聯公司2013年至今到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創新互聯公司

刑偵科推理題,不知是誰設計出來的,邏輯嚴整細致,有耐心看完題目的人就沒幾個。如果這真是刑警的日常考試題,我覺得他們實在是太厲害了,保證犯罪分子難逃法網。

用Python對刑偵科推理題進行分析

編程遍歷,這個邏輯本身很普通。但程序中有幾個有趣的點值得一提。

首先是十道題,每題有4種可能的選項,全部為4^10=1M,約100萬種可能,可以利用python的yield功能,避免將這么多中間結果保存起來。

def makeList(choose, n):
    if n==1:
        for x in choose:
            yield x
    a= makeList(choose, n-1)
    for item in a:
        b= list(item)
        for x in choose:
            c= b.copy()
            c.append(x)
            yield c

另一個問題就是怎樣把這些題目和選項完整地形式化。

就不一一講解了,代碼邏輯很清晰,直接上代碼。注意:所有加fake的函數,代表對題目的略寫,僅保證了選項正確,而沒有保證非選項錯誤。

之所以這樣處理,是希望假結果也出現。計算結果表明,第5、6、8使用略寫法不會增加新的假結果,只有第4題放開才出現假結果。

為了和題目統一序號,避免出錯,使用了1起,所以在列表前面增加了一個空選項。對其他題目不會有影響,但對第7題和第9題須注意一下,排除掉空選項的干擾。

def q1(x):
    return True
def q2(x):
    i1= x[2]==A and x[5]==C
    i2= x[2]==B and x[5]==D
    i3= x[2]==C and x[5]==A
    i4= x[2]==D and x[5]==B
    return i1 or i2 or i3 or i4
def q3(x):
    i1= x[3]==A and x[2]==x[4]==x[6] and x[2]!=A
    i2= x[3]==B and x[2]==x[4]==x[3] and x[6]!=B
    i3= x[3]==C and x[3]==x[4]==x[6] and x[2]!=C
    i4= x[3]==D and x[2]==x[3]==x[6] and x[4]!=D
    return i1 or i2 or i3 or i4
def q4(x):
    i1= x[4]==A and x[1]==x[5] and x[2]!=x[7] and x[1]!=x[9] and x[6]!=x[10]
    i2= x[4]==B and x[1]!=x[5] and x[2]==x[7] and x[1]!=x[9] and x[6]!=x[10]
    i3= x[4]==C and x[1]!=x[5] and x[2]!=x[7] and x[1]==x[9] and x[6]!=x[10]
    i4= x[4]==D and x[1]!=x[5] and x[2]!=x[7] and x[1]!=x[9] and x[6]==x[10]
    return i1 or i2 or i3 or i4
def q4_fake(x):
    i1= x[4]==A and x[1]==x[5]
    i2= x[4]==B and x[2]==x[7]
    i3= x[4]==C and x[1]==x[9]
    i4= x[4]==D and x[6]==x[10]
    return i1 or i2 or i3 or i4
def q5(x):
    i1= x[5]==A and x[8]==x[5] and x[4]!=x[5] and x[9]!=x[5] and x[7]!=x[5]
    i2= x[5]==B and x[8]!=x[5] and x[4]==x[5] and x[9]!=x[5] and x[7]!=x[5]
    i3= x[5]==C and x[8]!=x[5] and x[4]!=x[5] and x[9]==x[5] and x[7]!=x[5]
    i4= x[5]==D and x[8]!=x[5] and x[4]!=x[5] and x[9]!=x[5] and x[7]==x[5]
    return i1 or i2 or i3 or i4
def q5_fake(x):
    i1= x[5]==A and x[8]==x[5]
    i2= x[5]==B and x[4]==x[5]
    i3= x[5]==C and x[9]==x[5]
    i4= x[5]==D and x[7]==x[5]
    return i1 or i2 or i3 or i4
def q6(x):
    i1= x[6]==A and (x[8]==x[2]==x[4]) and not(x[1]==x[6]==x[8]) and not(x[3]==x[10]==x[8]) and not(x[5]==x[9]==x[8])
    i2= x[6]==B and not(x[8]==x[2]==x[4]) and (x[1]==x[6]==x[8]) and not(x[3]==x[10]==x[8]) and not(x[5]==x[9]==x[8])
    i3= x[6]==C and not(x[8]==x[2]==x[4]) and not(x[1]==x[6]==x[8]) and (x[3]==x[10]==x[8]) and not(x[5]==x[9]==x[8])
    i4= x[6]==D and not(x[8]==x[2]==x[4]) and not(x[1]==x[6]==x[8]) and not(x[3]==x[10]==x[8]) and (x[5]==x[9]==x[8])
    return i1 or i2 or i3 or i4
def q6_fake(x):
    i1= x[6]==A and (x[8]==x[2]==x[4])
    i2= x[6]==B and (x[1]==x[6]==x[8])
    i3= x[6]==C and (x[3]==x[10]==x[8])
    i4= x[6]==D and (x[5]==x[9]==x[8])
    return i1 or i2 or i3 or i4
def q7(x):
    x0=x[1:]
    mn= min(x0, key=x0.count)
    i1= x[7]==A and mn==C
    i2= x[7]==B and mn==B
    i3= x[7]==C and mn==A
    i4= x[7]==D and mn==D
    return i1 or i2 or i3 or i4
def q8_fake(x):
    i1= x[8]==A and abs(ord(x[7])- ord(x[1]))!=1
    i2= x[8]==B and abs(ord(x[5])- ord(x[1]))!=1
    i3= x[8]==C and abs(ord(x[2])- ord(x[1]))!=1
    i4= x[8]==D and abs(ord(x[10])- ord(x[1]))!=1
    return i1 or i2 or i3 or i4
def q9(x):
    i1= x[9]==A and xor(x[1]==x[6], x[6]==x[5])
    i2= x[9]==B and xor(x[1]==x[6], x[10]==x[5])
    i3= x[9]==C and xor(x[1]==x[6], x[2]==x[5])
    i4= x[9]==D and xor(x[1]==x[6], x[9]==x[5])
    return i1 or i2 or i3 or i4
def q10(x):
    x0=x[1:]
    m1= max(x0, key=x0.count)
    m2= min(x0, key=x0.count)
    mx= x0.count(m1)
    mn= x0.count(m2)
    i1= x[10]==A and mx- mn==3
    i2= x[10]==B and mx- mn==2
    i3= x[10]==C and mx- mn==4
    i4= x[10]==D and mx- mn==1
    return i1 or i2 or i3 or i4

注意看一下第9題,其中的xor不是python自帶的函數,它的定義很簡單。

def xor(a, b):
    return (a or b) and not(a and b)

最后遍歷得到結果:

def testAnswer(x):
    a= q1(x) 
    a= a and q2(x)
    a= a and q3(x)
    a= a and q4_fake(x)
    a= a and q5_fake(x)
    a= a and q6_fake(x)
    a= a and q7(x)
    a= a and q8_fake(x)
    a= a and q9(x)
    a= a and q10(x)
    return a
A='A'
B='B'
C='C'
D='D'
a= makeList([A, B, C, D], 10)
c= 0
for x in a:
    x.insert(0, '')
    c+=1
    if testAnswer(x):
        print(c, x)
print('tested %d times' % c)

運行結果

用Python對刑偵科推理題進行分析

稍做驗證即可知道,第一個答案是正確的,第二個即前文所提的假結果。

以上是用Python對刑偵科推理題進行分析的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯行業資訊頻道!


網頁標題:用Python對刑偵科推理題進行分析
網站網址:http://www.xueling.net.cn/article/jhpeee.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 五月婷婷俺也去高潮 | 欧美—级在线免费片 | 日韩欧美在线综合 | 伊人网在线免费视频 | 日本精品久久久久中文 | 日本网站免费在线观看 | 中日韩三级视频 | 97人妻碰碰碰久久久久禁片 | 日韩一区二区三区四区 | 美景之屋5在线观看 | 黑人久久久 | 精品国产一区二区三区2021 | 我趁老师睡觉偷偷的脱她内裤 | 欧美精品一区二区性色 | 琪琪午夜成人理论福利片美容院 | 在线亚洲97SE亚洲综合在线 | 国产免费av片在线观看麻豆 | 国产成人精品三级 | 国产精品蜜月aⅴ在线 | 高潮喷水的毛片 | 亚洲精品国产品国语原创 | 国内另类在线 | 狠狠热精品免费视频 | 国产精品女丝袜白丝袜 | 国产真实露脸乱子伦原著 | 91看片在线?看视频 国产日韩欧美色图 | 人人操,天天干 | 中文字幕亚洲制服在线看 | 亚洲最大黄色片 | 免费观看性生交大片3区 | 国产成a人亚洲精 | 色涩视频在线观看 | 国产精品视频久久久久久 | 国产精品永久久久久久久久久 | 国产不卡av在线播放 | 国产区在线观看 | 日韩欧美在线免费观看 | 免费黄色av网址 | 久久久国产精品无码一区二区 | 久久青草精品38国产 | 色噜噜狠狠成人中文综合 |