码迷,mamicode.com
首页 > 其他好文 > 详细

刑警题暴力破解脚本

时间:2018-03-03 10:57:52      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:import   body   pop   print   pos   ima   循环   alt   def   

技术分享图片

网上看见的,下面是代码(写的很烂)

# -*- coding:utf-8 -*-
import sys
sys.setrecursionlimit(1000000)
let=[A,B,C,D]
#题目选项
n3=[2,5,1,3]
n4=[[0,4],[1,6],[0,8],[5,9]]
n5=[7,3,8,6]
n6=[[1,3],[0,5],[2,9],[4,8]]
n7=[C,B,A,D]
n8=[6,4,1,9]
n9=[5,9,1,8]
n10=[3,2,4,1]
s=[]
def dfs (index=0):#深度优先遍历
    global s
    if index==10:
        juduge(s)
        return
    for i in range(4):
        s.append(chr(ord(A)+i))
        dfs(index+1)
        s.pop(-1)
def juduge(s):
    n=[s.count(A),s.count(B),s.count(C),s.count(D)]
    if ord(s[4])-ord(s[1])!=2 and ord(s[4])-ord(s[1])!=-2:#第二题
        return
    n33=n3[:]
    n33.remove(n3[ord(s[2])-ord(A)])#第三题
    if s[n3[ord(s[2])-ord(A)]] == s[n33[0]] or s[n3[ord(s[2])-ord(A)]] == s[n33[1]] or s[n3[ord(s[2])-ord(A)]] == s[n33[2]]:
        return
    if s[n4[ord(s[3])-ord(A)][0]] != s[n4[ord(s[3])-ord(A)][1]]:#第四题
        return
    if s[n5[ord(s[4])-ord(A)]] != s[4]:#第五题
        return
    if s[n6[ord(s[5])-ord(A)][0]]!=s[n6[ord(s[5])-ord(A)][1]]:#第六题
        return
    elif s[n6[ord(s[5])-ord(A)][0]]!=s[7]:
        return    
    if n.count(min(n))==1:#第七题
        if n7[ord(s[6])-ord(A)]!= let[n.index(min(n))]:
            return
    elif n.count(min(n))==2:
        if n7[ord(s[6])-ord(A)]!= let[n.index(min(n))] and n7[ord(s[6])-ord(A)]!= let[n.index(min(n),n.index(min(n)))]:
            return
    elif n.count(min(n))==3:
        if n7[ord(s[6])-ord(A)]!= let[n.index(min(n))] and n7[ord(s[6])-ord(A)]!= let[n.index(min(n),n.index(min(n)))] and n7[ord(s[6])-ord(A)]!= let[n.index(min(n),n.index(min(n),n.index(min(n))))]:
            return
    n91=[s[0]==s[5],s[n9[ord(s[8])-ord(A)]] == s[4]]#第九题
    if not(n91[0]^n91[1]):
        return
    if ord(s[n8[ord(s[7])-ord(A)]])-ord(s[0])==1 or ord(s[n8[ord(s[7])-ord(A)]])-ord(s[0])==-1:#第八题
        return  
    if n10[ord(s[9])-ord(A)]!=(max(n)-min(n)):#第十题
        return  
    print s



‘‘‘
s=‘‘
for a in range(4):
    for b in range(4):
        for c in range(4):
            for d in range(4):
                for e in range(4):
                    for f in range(4):
                        for g in range(4):
                            for h in range(4):
                                for i in range(4):
                                    for j in range(4):
                                        s+=chr(ord(‘A‘)+a)
                                        s+=chr(ord(‘A‘)+b)
                                        s+=chr(ord(‘A‘)+c)
                                        s+=chr(ord(‘A‘)+d)   
                                        s+=chr(ord(‘A‘)+e)
                                        s+=chr(ord(‘A‘)+f)
                                        s+=chr(ord(‘A‘)+g)
                                        s+=chr(ord(‘A‘)+h)
                                        s+=chr(ord(‘A‘)+i)
                                        s+=chr(ord(‘A‘)+j)
                                        juduge(s)         
                                        s=‘‘‘‘‘#循环穷举
dfs(0)
print finish

 

刑警题暴力破解脚本

标签:import   body   pop   print   pos   ima   循环   alt   def   

原文地址:https://www.cnblogs.com/kagari/p/8495629.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!