原创python基于大数据现实双色球预测

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原创python基于大数据现实双色球预测相关的知识,希望对你有一定的参考价值。

前提准备:利用sql筛选出每个球出现概率最高的前5个数

原理:先爬出所有的历史数据,然后模拟摇奖机出球的机制并大量模拟计算,直到出现列表中的某一个数后即停

注意事项:由于计算过程数据量很大,需要加入内存释放的操作

成果:目前博主最好记录是中了3红1蓝,适合学习交流使用,信则有

 

#coding=utf-8
import random
import time
import gc
import datetime
from collections import Counter
try:
    dt = datetime.datetime.now()
    time.sleep(1)
    print u‘程序启动时间:‘+dt.strftime(‘%Y-%m-%d %H:%M:%S‘)
    time.sleep(2)
    print u‘程序正在计算......‘
    real_red_1 = [1, 2, 3, 4, 5]
    real_red_2 = [7, 8, 6, 9, 5]
    real_red_3 = [14, 11, 13, 16, 12]
    real_red_4 = [20, 17, 22, 23, 18]
    real_red_5 = [26, 27, 25, 28, 24]
    real_red_6 = [32, 33, 31, 30, 29]
    real_blue = [9, 12, 11, 14, 6,13,7,15]
    def num_red_1():
        i = 0
        numlist_1 = []
        numlist_2 = []
        numlist_3 = []
        numlist_4 = []
        numlist_5 = []
        while i < 10000:
            i = i + 1
            numlist_1.append(random.randint(1, 33))
            gc.collect()
            numlist_2.append(random.randint(1, 33))
            gc.collect()
            numlist_3.append(random.randint(1, 33))
            gc.collect()
            numlist_4.append(random.randint(1, 33))
            gc.collect()
            numlist_5.append(random.randint(1, 33))
        global numlist
        numlist = numlist_1 + numlist_2 + numlist_3 + numlist_4 + numlist_5
        numpercent = {}
        for d in set(numlist):
            numpercent[numlist.count(d)] = d
        for e in reversed(sorted(numpercent.keys())[-1:]):
            return numpercent[e]
    while True:
        for i in range(10000):
            num_red_1()
            bingonum_red_1 = num_red_1()
            if bingonum_red_1 not in real_red_1:
                continue
            c = Counter(numlist)
#            print c[bingonum_red_1]
            if bingonum_red_1 == 1:
                numberA = c[bingonum_red_1]/float(50000)
                numberB = 384/float(2004)
                #            print numberA
                #            print numberB
                #            print ‘%.2f%%‘%(numberA / numberB*100)
                print u‘一号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_1) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_1 == 2:
                numberA = c[bingonum_red_1]/float(50000)
                numberB = 307/float(2004)
                print u‘一号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_1) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_1 == 3:
                numberA = c[bingonum_red_1]/float(50000)
                numberB = 255/float(2004)
                print u‘一号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_1) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_1 == 4:
                numberA = c[bingonum_red_1]/float(50000)
                numberB = 209/float(2004)
                print u‘一号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_1) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            else:
                numberA = c[bingonum_red_1]/float(50000)
                numberB = 175/float(2004)
                print u‘一号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_1) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            break
        break
    time.sleep(5)
    def num_red_2():
        i = 0
        numlist_1 = []
        numlist_2 = []
        numlist_3 = []
        numlist_4 = []
        numlist_5 = []
        while i < 10000:
            i = i + 1
            numlist_1.append(random.randint(1, 33))
            gc.collect()
            numlist_2.append(random.randint(1, 33))
            gc.collect()
            numlist_3.append(random.randint(1, 33))
            gc.collect()
            numlist_4.append(random.randint(1, 33))
            gc.collect()
            numlist_5.append(random.randint(1, 33))
        global numlist
        numlist = numlist_1 + numlist_2 + numlist_3 + numlist_4 + numlist_5
        numpercent = {}
        for d in set(numlist):
            numpercent[numlist.count(d)] = d
        for e in reversed(sorted(numpercent.keys())[-1:]):
            return numpercent[e]
    while True:
        for i in range(10000):
            num_red_2()
            bingonum_red_2 = num_red_2()
            if bingonum_red_2 not in real_red_2:
                continue
            c = Counter(numlist)
            if bingonum_red_2 == 7:
                numberA = c[bingonum_red_2]/float(50000)
                numberB = 181/float(2004)
                print u‘二号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_2) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_2 == 8:
                numberA = c[bingonum_red_2]/float(50000)
                numberB = 168/float(2004)
                print u‘二号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_2) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_2 == 6:
                numberA = c[bingonum_red_2]/float(50000)
                numberB = 160/float(2004)
                print u‘二号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_2) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_2 == 9:
                numberA = c[bingonum_red_2]/float(50000)
                numberB = 140/float(2004)
                print u‘二号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_2) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            else:
                numberA = c[bingonum_red_2]/float(50000)
                numberB = 140/float(2004)
                print u‘二号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_2) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            break
        break
    time.sleep(5)
    def num_red_3():
        i = 0
        numlist_1 = []
        numlist_2 = []
        numlist_3 = []
        numlist_4 = []
        numlist_5 = []
        while i < 10000:
            i = i + 1
            numlist_1.append(random.randint(1, 33))
            gc.collect()
            numlist_2.append(random.randint(1, 33))
            gc.collect()
            numlist_3.append(random.randint(1, 33))
            gc.collect()
            numlist_4.append(random.randint(1, 33))
            gc.collect()
            numlist_5.append(random.randint(1, 33))
        global numlist
        numlist = numlist_1 + numlist_2 + numlist_3 + numlist_4 + numlist_5
        numpercent = {}
        for d in set(numlist):
            numpercent[numlist.count(d)] = d
        for e in reversed(sorted(numpercent.keys())[-1:]):
            return numpercent[e]
    while True:
        for i in range(10000):
            num_red_3()
            bingonum_red_3 = num_red_3()
            if bingonum_red_3 not in real_red_3:
                continue
            c = Counter(numlist)
            if bingonum_red_3 == 14:
                numberA = c[bingonum_red_3]/float(50000)
                numberB = 147/float(2004)
                print u‘三号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_3) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_3 == 11:
                numberA = c[bingonum_red_3]/float(50000)
                numberB = 136/float(2004)
                print u‘三号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_3) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_3 == 13:
                numberA = c[bingonum_red_3]/float(50000)
                numberB = 129/float(2004)
                print u‘三号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_3) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_3 == 16:
                numberA = c[bingonum_red_3]/float(50000)
                numberB = 128/float(2004)
                print u‘三号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_3) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            else:
                numberA = c[bingonum_red_3]/float(50000)
                numberB = 125/float(2004)
                print u‘三号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_3) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            break
        break
    time.sleep(5)
    def num_red_4():
        i = 0
        numlist_1 = []
        numlist_2 = []
        numlist_3 = []
        numlist_4 = []
        numlist_5 = []
        while i < 10000:
            i = i + 1
            numlist_1.append(random.randint(1, 33))
            gc.collect()
            numlist_2.append(random.randint(1, 33))
            gc.collect()
            numlist_3.append(random.randint(1, 33))
            gc.collect()
            numlist_4.append(random.randint(1, 33))
            gc.collect()
            numlist_5.append(random.randint(1, 33))
        global numlist
        numlist = numlist_1 + numlist_2 + numlist_3 + numlist_4 + numlist_5
        numpercent = {}
        for d in set(numlist):
            numpercent[numlist.count(d)] = d
        for e in reversed(sorted(numpercent.keys())[-1:]):
            return numpercent[e]
    while True:
        for i in range(10000):
            num_red_4()
            bingonum_red_4 = num_red_4()
            if bingonum_red_4 not in real_red_4:
                continue
            c = Counter(numlist)
            if bingonum_red_4 == 20:
                numberA = c[bingonum_red_4]/float(50000)
                numberB = 147/float(2004)
                print u‘四号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_4) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_4 == 17:
                numberA = c[bingonum_red_4]/float(50000)
                numberB = 146/float(2004)
                print u‘四号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_4) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_4 == 22:
                numberA = c[bingonum_red_4]/float(50000)
                numberB = 144/float(2004)
                print u‘四号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_4) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_4 == 23:
                numberA = c[bingonum_red_4]/float(50000)
                numberB = 132/float(2004)
                print u‘四号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_4) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            else:
                numberA = c[bingonum_red_4]/float(50000)
                numberB = 129/float(2004)
                print u‘四号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_4) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            break
        break
    time.sleep(5)
    def num_red_5():
        i = 0
        numlist_1 = []
        numlist_2 = []
        numlist_3 = []
        numlist_4 = []
        numlist_5 = []
        while i < 10000:
            i = i + 1
            numlist_1.append(random.randint(1, 33))
            gc.collect()
            numlist_2.append(random.randint(1, 33))
            gc.collect()
            numlist_3.append(random.randint(1, 33))
            gc.collect()
            numlist_4.append(random.randint(1, 33))
            gc.collect()
            numlist_5.append(random.randint(1, 33))
        global numlist
        numlist = numlist_1 + numlist_2 + numlist_3 + numlist_4 + numlist_5
        numpercent = {}
        for d in set(numlist):
            numpercent[numlist.count(d)] = d
        for e in reversed(sorted(numpercent.keys())[-1:]):
            return numpercent[e]
    while True:
        for i in range(10000):
            num_red_5()
            bingonum_red_5 = num_red_5()
            if bingonum_red_5 not in real_red_5:
                continue
            c = Counter(numlist)
            if bingonum_red_5 == 26:
                numberA = c[bingonum_red_5]/float(50000)
                numberB = 173/float(2004)
                print u‘五号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_5) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_5 == 27:
                numberA = c[bingonum_red_5]/float(50000)
                numberB = 167/float(2004)
                print u‘五号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_5) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_5 == 25:
                numberA = c[bingonum_red_5]/float(50000)
                numberB = 164/float(2004)
                print u‘五号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_5) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_5 == 28:
                numberA = c[bingonum_red_5]/float(50000)
                numberB = 160/float(2004)
                print u‘五号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_5) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            else:
                numberA = c[bingonum_red_5]/float(50000)
                numberB = 133/float(2004)
                print u‘五号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_5) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            break
        break
    time.sleep(5)
    def num_red_6():
        i = 0
        numlist_1 = []
        numlist_2 = []
        numlist_3 = []
        numlist_4 = []
        numlist_5 = []
        while i < 10000:
            i = i + 1
            numlist_1.append(random.randint(1, 33))
            gc.collect()
            numlist_2.append(random.randint(1, 33))
            gc.collect()
            numlist_3.append(random.randint(1, 33))
            gc.collect()
            numlist_4.append(random.randint(1, 33))
            gc.collect()
            numlist_5.append(random.randint(1, 33))
        global numlist
        numlist = numlist_1 + numlist_2 + numlist_3 + numlist_4 + numlist_5
        numpercent = {}
        for d in set(numlist):
            numpercent[numlist.count(d)] = d
        for e in reversed(sorted(numpercent.keys())[-1:]):
            return numpercent[e]
    while True:
        for i in range(10000):
            num_red_6()
            bingonum_red_6 = num_red_6()
            if bingonum_red_6 not in real_red_6:
                continue
            c = Counter(numlist)
            if bingonum_red_6 == 32:
                numberA = c[bingonum_red_6]/float(50000)
                numberB = 309/float(2004)
                print u‘六号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_6) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_6 == 33:
                numberA = c[bingonum_red_6]/float(50000)
                numberB = 307/float(2004)
                print u‘六号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_6) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_6 == 31:
                numberA = c[bingonum_red_6]/float(50000)
                numberB = 249/float(2004)
                print u‘六号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_6) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_red_6 == 30:
                numberA = c[bingonum_red_6]/float(50000)
                numberB = 221/float(2004)
                print u‘六号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_6) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            else:
                numberA = c[bingonum_red_6]/float(50000)
                numberB = 202/float(2004)
                print u‘六号红球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_red_6) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            break
        break
    time.sleep(5)
    def num_blue():
        i = 0
        numlist_1 = []
        numlist_2 = []
        numlist_3 = []
        numlist_4 = []
        numlist_5 = []
        while i < 10000:
            i = i + 1
            numlist_1.append(random.randint(1, 16))
            gc.collect()
            numlist_2.append(random.randint(1, 16))
            gc.collect()
            numlist_3.append(random.randint(1, 16))
            gc.collect()
            numlist_4.append(random.randint(1, 16))
            gc.collect()
            numlist_5.append(random.randint(1, 16))
        global numlist
        numlist = numlist_1 + numlist_2 + numlist_3 + numlist_4 + numlist_5
        numpercent = {}
        for d in set(numlist):
            numpercent[numlist.count(d)] = d
        for e in reversed(sorted(numpercent.keys())[-1:]):
            return numpercent[e]
    while True:
        for i in range(10000):
            num_blue()
            bingonum_blue = num_blue()
            if bingonum_blue not in real_blue:
                continue
            c = Counter(numlist)
            if bingonum_blue == 9:
                numberA = c[bingonum_blue]/float(50000)
                numberB = 140/float(2004)
                print u‘蓝球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_blue) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_blue == 12:
                numberA = c[bingonum_blue]/float(50000)
                numberB = 136/float(2004)
                print u‘蓝球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_blue) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_blue == 11:
                numberA = c[bingonum_blue]/float(50000)
                numberB = 135/float(2004)
                print u‘蓝球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_blue) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_blue == 14:
                numberA = c[bingonum_blue]/float(50000)
                numberB = 130/float(2004)
                print u‘蓝球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_blue) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_blue == 6:
                numberA = c[bingonum_blue]/float(50000)
                numberB = 129/float(2004)
                print u‘蓝球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_blue) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_blue == 13:
                numberA = c[bingonum_blue]/float(50000)
                numberB = 129/float(2004)
                print u‘蓝球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_blue) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            elif bingonum_blue == 7:
                numberA = c[bingonum_blue]/float(50000)
                numberB = 128/float(2004)
                print u‘蓝球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_blue) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            else:
                numberA = c[bingonum_blue]/float(50000)
                numberB = 128/float(2004)
                print u‘蓝球预测完成‘ + ‘     ‘ + u‘号码:‘ + str(bingonum_blue) + ‘     ‘ + u‘中奖概率‘ + str(
                    ‘%.2f%%‘ % (numberB*(1+numberA)*100))
            break
        break
finally:
    raw_input()

  

以上是关于原创python基于大数据现实双色球预测的主要内容,如果未能解决你的问题,请参考以下文章

Python+Flask+爬虫双色球数据采集及大数据可视化平台

基于神经网络拟合模型的2020084期双色球预测

双色球037期开奖大数据预测数据分析

基于Python/Flask框架的双色球数据采集(爬虫)及大数据可视化平台设计与实现

双色球中5个红号的几率是多少?

双色球数据分析(朴素贝叶斯算法预测蓝球)