zoukankan      html  css  js  c++  java
  • 【原创】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()
    

      

  • 相关阅读:
    caffe常用层: batchNorm层和scale层
    简述configure、pkg-config、pkg_config_path三者的关系
    python删除list中元素的三种方法
    Leetcode 872. Leaf-Similar Trees
    Leetcode 508. Most Frequent Subtree Sum
    Leetcode 572. Subtree of Another Tree
    Leetcode 894. All Possible Full Binary Trees
    Leetcode 814. Binary Tree Pruning
    Leetcode 557. Reverse Words in a String III
    python 多维list声明时的小问题
  • 原文地址:https://www.cnblogs.com/huangxiaocheng/p/7478651.html
Copyright © 2011-2022 走看看