calc24.py

来自「自个写的一个穷举法算二十四点的小程序」· Python 代码 · 共 42 行

PY
42
字号
import sys,os,math
'''24-point solution finder'''

def add(a,b):
    return a+b
def sub(a,b):
    return a-b
def mul(a,b):
    return a*b
def div(a,b):
    return float(a)/float(b)
def listrm(a,c):
    tempa=list(a)
    tempa.remove(c)
    return tempa

def clac(a,b,c,d):
    alist=[]
    alist.append(a)
    alist.append(b)
    alist.append(c)
    alist.append(d)
    for a in alist:
     temp1=listrm(alist,a)
     for b in temp1:
      temp2=listrm(temp1,b)
      for c in temp2:
       temp3=listrm(temp2,c)
       for d in temp3:
        for op1 in operlist:
           for op2 in operlist:
               for op3 in operlist:
                   try:
                       if abs(apply(op3,[d,apply(op2,[c,apply(op1,[a,b])])]) - 24) <=0.001:
                           print '(',d,op3.__name__,'(',c,op2.__name__,'(',a,op1.__name__,b,')))==24'
                   except ZeroDivisionError:
                        pass;

a,b,c,d=24,1,4,7
operlist=[add,sub,mul,div]
clac(a,b,c,d)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?