解24点,,[Python]代码#!
解24点,,[Python]代码#!
[Python]代码
#!/usr/bin/python# coding:utf-8'''简介:本脚本用于计算24点'''import math,sys,osdef _cal(a,b): temp={'+':a+b,'-':a-b,'--':b-a,'*':a*b} if b!=0 and a!=0: temp['/']=float(a)/b temp['\\']=float(b)/a return tempdef cal(num): for i0 in num: for i1 in num: if i1==i0: continue else: for i2 in num: if i2==i1 or i2==i0: continue else: for i3 in num: if i3==i1 or i3==i0 or i3==i2: continue else: temp1=_cal(num[i0],num[i1]) for k1 in temp1: temp2=_cal(temp1[k1],num[i2]) for k2 in temp2: temp3=_cal(temp2[k2],num[i3]) for k3 in temp3: if temp3[k3]==24: print '((%d%s%d)%s%d)%s%d=24' %(num[i0],k1,num[i1],k2,num[i2],k3,num[i3]) return True return False print 'fail'#单独测试一组test=[1,2,4,9]num={1:test[0],2:test[1],3:test[2],4:test[3]}cal(num)'''#查看所有的无解组Max=15fail=0failist=[]for i1 in range(1,Max): for i2 in range(1,Max): for i3 in range(1,Max): for i4 in range(1,Max): num={1:i1,2:i2,3:i3,4:i4} if not cal(num): temp=[num[1],num[2],num[3],num[4]] temp.sort() if temp not in failist: failist.append(temp) fail=fail+1print failistprint 'all:%d,fail:%d' %(15**4,fail)#无解个数721'''
相关内容
- Python program to solve an equation using Gauss elimination,equatio
- python实例 盖房子种树记好时间,python实例,[Python]代码
- python输出各位有效数字|global变量,pythonglobal,[Python]代码
- python通过socket查询whois脚本,pythonwhois,import socke
- 约瑟夫环问题,约瑟夫环,有 个囚犯站成一个 圆
- 编写.ini文件,编写.ini,from ConfigP
- 简单的批量下载工具,简单批量下载工具,Read URLs li
- 求最大最小最大值因数,最大值因数,Python语言: 求最
- 比较一个文件夹比另一同名文件夹多出哪些文件,并复
- 一个用Python给Vim做的插件,PythonVim做插件,[Python]代码
评论关闭