关于双色球

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

最近在学习python3,其中有个例子,自动产生随机数,灵机一动改了一下代码,可以自动生成任意行数、列数、最大数、最小数。这个程序就可以自动产生类似双色球前6个数字。最近又听说双色球中出了亿元大奖,如果人有足够的钱,买足够多的号,你觉得可以买多少柱才能中奖呢?不防我们做个实验。用这个小脚本生成如1000万行的数字,然后把每行数字与双色球前6个去对比,你觉得会中嘛?
 
以下是 lottery.py文件代码:
2Ek Ag0{ CANP2@^0#!/usr/bin/env python3
import random51Testing软件测试网Hc[0O$TF
import sys
def get_int(msg,minimum,default):51Testing软件测试网t+C"dg#@f1P
    while True:
SD:B,o zVHqV&R0        try:51Testing软件测试网I fM9ZC
            line=input(msg)51Testing软件测试网 Bf+l0R f9rl
            if not line and default is not None:
neP5D)G0                 return default
@3Cg$ZB&PX%_0            i=int(line)
K#uo a6}.V:TVA2h0            if i<minimum:
^-l2eH Z+W0                print("must be >=",minimum)
7eg\%`8G:G|7[E'm0            else:51Testing软件测试网-y$]$GrS }\yE I:y
                return i51Testing软件测试网l {:o,|NpAG P
        except ValueError as err:51Testing软件测试网!_p"N [!JPU
             print(err)

QwA |#[0rows=get_int("rows:",1,None)51Testing软件测试网9B%bU)r;Ru l
columns=get_int("columns:",1,None)
Gt%F4ZN(~z^ |0minimum=get_int("minimum (or Enter for 0):",-100000,0)51Testing软件测试网 BG(cR1M-Rj+j
print("minimum =",minimum)
default=1000
\z H f,Tfd0if default<minimum:
(\HKtA8n(F0    default=2*minimum
"G-c\(l],z^0maximum=get_int("maximum (or enter for "+str(default)+"):",minimum,default)
print("rows=",rows," columns=",columns," maximum=",maximum)

pP N c!p0row=0
EU!@.r0N0while row<rows:
/FDez`&_;V!S0    line=""51Testing软件测试网:R:A0I]x-o5y$Z*E4^
    column=051Testing软件测试网K!kE[8{x9|w
    result=[]
i;H&}#q tX$E'G8c"d0    while column<columns:
(DtxM!j)B e0        i=random.randint(minimum,maximum)
G"P0o CG3o0        result.append(i)
9lD1eMEM$Q Is0        column+=1
1eWo*P+ch0    result.sort()
F2`v9G7j*]0    index=051Testing软件测试网 NnEZ;\!k'P*eH;D
    while index<columns:
} f*i6x(d#N-@E0        s=str(result[index])51Testing软件测试网1m"e*o!dWA%M
        while len(s)<4:51Testing软件测试网Ik!@ Vw Z9W
            s=" "+s51Testing软件测试网W0}3~4l6G&h;h
        line+=s
Z$I({| @q+F x2Q0        index+=1
EP!t4`ni4U0    print(line)
1Xx~2r5_t0    row+=1
"_J%vO)` s0
例如代码没有去掉重复的数字,以及没有双色球第7位数字(1-16),如有兴趣的朋友可以再修改一下代码。不过试验的结果是,即使有1000万行数据,匹配5个数以上的一行数据都没有,哈哈。朋友,你还会买双色球嘛?下面是自动生成100行执行过程图
 

TAG:

 

评分:0

我来说两句

Open Toolbar