• 刑警题暴力破解脚本


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

    # -*- 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'
  • 相关阅读:
    VC 透明滑动控件Slider Control
    VC 对话框背景颜色、控件颜色
    VS2008下直接安装使用Boost库1.46.1版本
    强大的CImage类
    用CImage类来显示PNG、JPG等图片
    VS2008+Qt 项目目录
    java 中几种常用数据结构
    数据结构与算法——常用数据结构及其Java实现
    C++常用数据结构的实现
    基础数据结构和算法概念
  • 原文地址:https://www.cnblogs.com/kagari/p/8495629.html
Copyright © 2020-2023  润新知