• 【原创】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()
    

      

  • 相关阅读:
    八、springboot 简单优雅的通过docker-compose 构建
    【并发编程】ThreadLocal其实很简单
    计算机网络
    相似度
    不同激活函数的区别
    快速排序+归并排序
    xgboost
    c++面试
    PCA算法和SVD
    各种排序算法的时间复杂度和空间复杂度
  • 原文地址:https://www.cnblogs.com/huangxiaocheng/p/7478651.html
Copyright © 2020-2023  润新知