首先我们来看一下双色球的规则 由这里看出,中奖不是很规律,所以我们的麻烦来的,要一个一个的写中奖规则。。。 这里引入了上一篇的排列组合模块 废话少说,看代码 #coding=gbk # ------------------------------------- # 用 途: 计算中奖数 # 作 者: dabing # 创建时间: 2011-4-14 # 修改记录: # ------------------------------------- import os import re import sys import c string1=raw_input("请输入投注号:").split("|") string2=raw_input("请输入中奖号:").split("|") red1=string1[0].split(",") blue1=string1[1].split(",") red2=string2[0].split(",") blue2=string2[1] num1=len(red1) num2=len(blue1) k=0 for i in red2: if i in red1: k+=1 v=0 if blue2 in blue1: v=1 if v==0 and k<4: print "您没有中奖!" sys.exit() award=("一","二","三","四","五","六") awardsum=[0,0,0,0,0,0] def ss(k): awardsum[0]=c.C(k,6) awardsum[1]=c.C(k,6)*c.C(num2-1,1) awardsum[2]=c.C(k,5)*c.C(num1-k,1) awardsum[3]=c.C(k,4)*c.C(num1-k,2)+awardsum[1]*awardsum[2] awardsum[4]=c.C(k,3)*c.C(num1-k,3)+c.C(k,4)*c.C(num1-k,2)*awardsum[1] awardsum[5]=c.C(k,2)*c.C(num1-k,4)+c.C(k,1)*c.C(num1-k,5)+c.C(num1-k,6) if v==0: if k==6: awardsum[1]=c.C(num2,1) awardsum[3]=c.C(6,5)*c.C(num1-6,1)*c.C(num2,1) awardsum[4]=c.C(6,4)*c.C(num1-6,2)*c.C(num2,1) elif k==5: awardsum[3]=c.C(num1-6,1)*c.C(num2,1) awardsum[4]=c.C(5,4)*c.C(num1-6,2)*c.C(num2,1) elif k==4: awardsum[4]=c.C(num1-6,2)*c.C(num2,1) elif v==1: ss(k) for i in range(6): print "%s%s : %d"%(award[i],"等奖",awardsum[i]) 哈哈!完成了啊