关于双色球

上一篇 / 下一篇  2012-03-02 09:15:29 / 个人分类:Python3

最近在学习python3,其中有个例子,自动产生随机数,灵机一动改了一下代码,可以自动生成任意行数、列数、最大数、最小数。这个程序就可以自动产生类似双色球前6个数字。最近又听说双色球中出了亿元大奖,如果人有足够的钱,买足够多的号,你觉得可以买多少柱才能中奖呢?不防我们做个实验。用这个小脚本生成如1000万行的数字,然后把每行数字与双色球前6个去对比,你觉得会中嘛?
 
以下是 lottery.py文件代码:51Testing软件测试网 ^Og g)g0_ @E
#!/usr/bin/env python3
import random51Testing软件测试网\KXp,u
import sys
def get_int(msg,minimum,default):51Testing软件测试网3@9i1l j0na)fb,Y]
    while True:51Testing软件测试网iNp$v*l_6[
        try:
@ S"Z~K;|)p0            line=input(msg)
@G ?4QK.D8Eyu E0            if not line and default is not None:51Testing软件测试网t#b;c?.o n.de,WX3\
                 return default
c#Y6S+in"X;? n0            i=int(line)51Testing软件测试网b OCQ.[ JB3\"qWx
            if i<minimum:
B*I_Q&p0                print("must be >=",minimum)51Testing软件测试网 wc|j h
            else:51Testing软件测试网:[ fL#nJ#zUn
                return i
EmC/qpB?1c3G7s0        except ValueError as err:
)N6H"C^`5|0             print(err)

Ls*uWU0rows=get_int("rows:",1,None)51Testing软件测试网/vTF AJ Bf)q,p a
columns=get_int("columns:",1,None)51Testing软件测试网\Id,`L AS
minimum=get_int("minimum (or Enter for 0):",-100000,0)51Testing软件测试网-@ v$TU#V.OSe
print("minimum =",minimum)
default=1000
Kn(~(eU#t'x1QpU0if default<minimum:51Testing软件测试网$HN8M*~W3XP$rh
    default=2*minimum
T2Z*Q5J1W4j.~e4N0maximum=get_int("maximum (or enter for "+str(default)+"):",minimum,default)
print("rows=",rows," columns=",columns," maximum=",maximum)

_#bD)SY i0row=051Testing软件测试网$H4a!o1A8ZDz
while row<rows:
o!~8?E@7f].m0    line=""51Testing软件测试网 l YB#h?x T;B%t b b
    column=0
u&kY&v$~0    result=[]51Testing软件测试网8kj#ID0z*NaB6KB
    while column<columns:51Testing软件测试网 ho%U1~ O Z XY*Z v e
        i=random.randint(minimum,maximum)51Testing软件测试网D2o\ L)uw*q5gd2K
        result.append(i)51Testing软件测试网M3]6m P/i&G)r j X
        column+=1
S-{3a yX AM~0    result.sort()51Testing软件测试网o!C`phu7w
    index=051Testing软件测试网({dw$OD_g
    while index<columns:51Testing软件测试网8~mZ${6o,bc z
        s=str(result[index])51Testing软件测试网2@Q;fL&k2rT
        while len(s)<4:
a-L3P$W%|eVM.t0            s=" "+s51Testing软件测试网o0y$B3k"J:{ K
        line+=s
1P'^\5]c&PT:d:r0        index+=1
&sLHeLV0    print(line)51Testing软件测试网~BLr~
    row+=151Testing软件测试网^tIw4B'X(y
例如代码没有去掉重复的数字,以及没有双色球第7位数字(1-16),如有兴趣的朋友可以再修改一下代码。不过试验的结果是,即使有1000万行数据,匹配5个数以上的一行数据都没有,哈哈。朋友,你还会买双色球嘛?下面是自动生成100行执行过程图
 

TAG:

 

评分:0

我来说两句

Open Toolbar