1. 程式人生 > >如果你足夠相信,那麼這段程式碼裡會有意外收穫。

如果你足夠相信,那麼這段程式碼裡會有意外收穫。

做為一個熱愛生活、興趣廣泛、處處充滿好奇心,而又會寫兩行程式碼的人,怎麼能讓自己的IDE閒置起來呢?所以,工作之餘,開始各種驗證腦子裡的一些小(xiao)想(jiu)法(jiu)。

或許每個人都或多或少、或長或短地做過那麼一兩次發財夢,如果稍有執著一點人的,還會試圖去買幾注彩票碰碰運氣。事實證明:幸運女神是很忙的。

看過電腦《推理筆記》的同學可能會被裡面對概率運用的情節所吸引,亦或對神祕的拉普拉斯妖充滿好奇。那麼根據小編的世界觀、人生觀、價值觀來認為,在這個神奇的宇宙裡,我們人類全部的認知也才不到5%,又怎麼能否定一些大膽的診斷呢?所以,在小編對宇宙充滿好奇的同時,也沒忘用自己的思考方式來辯證地吸收新的知識,然後總結成自己的觀點,而其中最大的收穫就是讓自己不再困惑。

以上純是因為最近《馬克思主義基本原理概論》看多了才有的一些感慨和診斷,下面回到人間煙火。

################################

其實在寫這篇文章之前,還特意跟自己辯論了一番,當下都在宣揚正能量、宣傳"美好的生活是人民通過辛勤勞動創造出來的",習大大也正在努力地推進著中華民族的精神文明建設,那麼我這豈不是有悖於發展趨勢?因為買彩票總是屬於投機行為,容易滋生不勞而獲的心態。是的,本篇還真就認真地、嚴肅地討論一番彩票,而且,還略微高大上地引入程式碼來實現篩選和分析的過程。

大家知道,一個彩種被設計並投入市場之前,它的遊戲規則都是被定義好了的,也就是說它的概率即是被反覆推演過很多遍的(如果你作為一個彩種的總策劃,設計出來的產品一經投放市場就讓公司賠的底朝天,他們會放過你嗎),也就是說,無論市場上怎麼購買,對彩種的設計者來說,都是贏利的。那麼既然這樣,為什麼還是會有不計其數的人購買彩票?答案是惟一的,大家都期望得到幸運女神的眷顧。

凡事都要講求一個方法,只有運用了正確的方法才能取得事半功倍的效果。分析彩票也一樣,也得有方法。比如,小編就興奮地選擇了python來試圖開啟一扇財富大門。

################################

(為了證明小編CNB是打了草稿的,先把思路寫清楚)

========探索思路及過程========

一、選擇一種無傷大雅的彩種

1.在小編的世界裡,只認識四種彩票:體彩大樂透、福彩雙色球、福彩3D,當然 還有神奇的刮刮樂。(懶得再列舉)

2.綜合判斷以上各型別的彩種,福彩3D還是比較親民的。雖說大樂透和雙色球的獎勵比較誘人,但稍懂點數學常識的同學都知道,分析它們的資料量也是驚人的,事實證明,我的MacBookPro用Python執行雙色球的排列組合運算時,卡的我都心疼。。。

3.福彩3D,三種數字排列組合,總共1000種可能,最高資金1040元。所以,把所有可能全買,是一定會中獎的,只要不傻。

二、羅列出所有排列組合,並排除小概率事件

1.生成全排列,並過濾掉一些明顯有規律的排列

三、加入網上常用殺號規則和技巧

1.進一步過濾小概率事件,加入一些常用的殺號規則,繼續減小資料量(資料量的減少,意味著投資的減少,都是關於錢呀)

2.每種規則加入之前可以驗證其單獨使用時的概率

四、結合歷史資料分析概率

1.有了規則,到了驗證的時候了,去網上查詢有歷史資料,製成合適的格式以備程式提取並實現對比

2.大功告成,執行!!!!!!

五、除錯篩選規則

1.得到一個慘不忍睹的資料。

2.痛定思痛,調整過濾規則,執行。

3.繼續改。。。繼續執行。。。繼續看到傷心的結果。。。

4.分析原因:那些小概率事件疊加了!!!

六、公開發表結論:理想是豐滿的,現實是骨感的。所以,想要用概率來發財,不用想了,洗洗睡吧。

###################################

然鵝。。。

就在小編準備收起mac本準備洗洗睡吧的時候,天空飄來了五個字,來一起大聲說:高、手、在、民、間!(你猜錯了!)

於是乎,曙光來了。

###################################

七、繼續搞:加入民間一些"高人"的預測

1.加入某人甲和某人乙的兩種預測之後,小編喜出望外地看到了正的結果,是正,不再是負!!這很重要!!

2.繼續新增歷史資料量,繼續除錯過濾規則,繼續執行。。。

3.統計、總結、分析之後,結果喜人!!!

八、終於可以偷偷地去悶聲發大財了!

¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥

¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥

難以按捺心中的激動,趕緊跑出去抽根菸。

又然而,問題來了,怎麼才能實現這個過程呢?

很簡單:你執行一下程式碼,把生成的結果寫入一個文件,然後打印出來,帶著上面的錢數和上面的數字,找一家彩票站,說:老闆,買彩票!然後就等著中獎吧。

你想想,只要執行一下程式碼就把錢賺了,這個過程是不是很爽呢?如果網上能購彩,你甚至可以寫一個自動化指令碼讓它自動完成這個過程,你只需要在預先設計並留存的那個手機號是檢視每天的進賬簡訊就可以了,想想這個過程是不是更爽呢?那麼我告訴你,這個過程是真的可以實現的!!

#############################

又又又然而,我為什麼跑出去抽菸,而不是跑去彩票站去發財呢?

我想說的是,我沒有時間,如果我花這麼多精力去做這樣的事,那麼我完全可以把時間花在另外一些地方收穫比這個過程更豐厚的報酬。比如:我完全可以再買一本專業的書籍,來獲取更多的知識,來提高一個新的技術水平,來給自己增值。這些每一種方式都比執行程式碼然後花很長時間去購彩這樣的過程更有意義。

當然,如果你看不慣我說的這些,你也完全不認同我的觀點,你所感興趣的只是趕緊把程式碼拷走準備發財,那麼我也會毫不吝嗇地把程式碼分享給你,因為你既然看到了這裡,那麼一定不是一個過客。

##############################

¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥

(本篇完,上程式碼)

¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥

# -*- coding:utf-8 -*-

###############################################
'''
宣告:
1.該段程式碼僅用於福彩3D概率驗證及分析,如需具體使用,請自行修改。
2.本段程式碼不設版權,Linux都開源了,我還有啥捨不得的。
3.祝你好運!
'''
###############################################

import itertools
###############################################
'''
使用的資料結構為
2018145-2018-06-01=5=386=01267=2
2018146-2018-06-02=6=569=04679=5
2018147-2018-06-03=7=636=12358=7
釋義:
2018147:期號
2018-06-03:日期
=7:星期
=636:當期開獎號
=12358:當期預測五碼
=7:當期殺百位
'''
###############################################
file = 'your filename'
f = open(file, 'r')
lines = f.readlines()
###############################################
####===>>>宣告全域性變數
success = 0
fail = 0
Flag = 0
null = 0
testFlag = 0
balance = 0
payall = 0

s1 = s2 = s3 = s4 = s5 = s6 = 0
s11 = s12 = 0
s21 = s22 = s23 = s24 = 0
s31 = s32 = s33 = s34 = 0
ss1 = ss2 = 0
s51 = s52 = 0
s6_a = s6_b = 0
sa1 = sa2 = sa3 = sa4 = sa5 = sa6 = 0
sb1 = sb2 = sb3 = sb4 = sb5 = 0

seed = []

#####  主驅動
for i in range(1, len(lines) - 1):
    ####===>>>賦值
    t1 = int(lines[i + 1][25])
    t2 = int(lines[i + 1][26])
    t3 = int(lines[i + 1][27])
    t4 = int(lines[i + 1][28])
    t5 = int(lines[i + 1][29])
    Tai = [t1, t2, t3, t4, t5]
    ##
    yes1 = int(lines[i - 1][21])
    yes2 = int(lines[i - 1][22])
    yes3 = int(lines[i - 1][23])
    Yesterday = [yes1, yes2, yes3]
    to1 = int(lines[i][21])
    to2 = int(lines[i][22])
    to3 = int(lines[i][23])
    Today = [to1, to2, to3]
    tom1 = int(lines[i + 1][21])
    tom2 = int(lines[i + 1][22])
    tom3 = int(lines[i + 1][23])
    Tomorrow = [tom1, tom2, tom3]
    ##
    issue = int(lines[i + 1][6])
    date = int(lines[i + 1][17])
    week = int(lines[i + 1][19])
    beforexx = str(Yesterday[1]) + str(Today[1])
    keyxxx = Today[0]
    keyxx = Today[1]
    keyx = Today[2]
    ##
    singlexxx = lines[i + 1][31]

    ####===>>> 生成Seed[]
    num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    a = Tai
    b = []
    for i in range(len(num)):
        test = num[i]
        if test not in Tai:
            b.append(test)
    ### <One>===  One in A
    bb = list(itertools.permutations(b, 2))
    per1 = []

    for ii in range(len(bb)):
        for j in range(len(a)):
            temp1 = str(bb[ii][0]) + str(bb[ii][1]) + str(a[j])
            per1.append(temp1)
            temp2 = str(bb[ii][0]) + str(a[j]) + str(bb[ii][1])
            per1.append(temp2)
            temp3 = str(b[j]) + str(bb[ii][0]) + str(bb[ii][1])
            per1.append(temp3)

    ########################################################################
    ### <Two>===  Three in B
    bbb = list(itertools.permutations(b, 3))
    per2 = []
    for ii in range(len(bbb)):
        temp1 = str(bbb[ii][0]) + str(bbb[ii][1]) + str(b[j])
        per2.append(temp1)
        temp2 = str(bbb[ii][0]) + str(b[j]) + str(bbb[ii][1])
        per2.append(temp2)
        temp3 = str(b[j]) + str(bbb[ii][0]) + str(bbb[ii][1])
        per2.append(temp3)

    ##########################################################################
    ### <Three>===組三
    ### <A>==Three in B
    dd = []
    for ii in range(len(b)):
        temp1 = str(bbb[ii][0]) + str(bbb[ii][1]) + str(b[j])
        per2.append(temp1)
        temp2 = str(bbb[ii][0]) + str(b[j]) + str(bbb[ii][1])
        per2.append(temp2)
        temp3 = str(b[j]) + str(bbb[ii][0]) + str(bbb[ii][1])
        per2.append(temp3)
    ### <B>==One in A
    ee = []
    for ii in range(len(bb)):
        temp4 = str(bb[ii][0]) * 2 + str(bb[ii][1])
        ee.append(temp4)
        temp5 = str(bb[ii][0]) + str(bb[ii][1]) * 2
        ee.append(temp5)

    ########################################################################
    ### <Four>===OutReport

    lists = per1
    per1 = []
    per2 = []
    dd = []
    ee = []
    ################################################################################################

    ################################################################################################
    ### <Five>===Kill some numbers

    ### 副驅動
    for ii in range(len(lists)):
        x = 0
        y = 1
        z = 2
        num[x] = int(lists[ii][x])
        num[y] = int(lists[ii][y])
        num[z] = int(lists[ii][z])

        ## <Two>==Select
        # <1>==Sum
        sum = Today[0] + Today[1] + Today[2]
        if num[x] + num[y] + num[z] == sum:
            null += 1
            s11 += 1

        if num[x] + num[y] + num[z] == 0 or num[x] + num[y] + num[z] == 1 or num[x] + num[y] + num[z] == 2 or num[x] + \
                num[y] + num[z] == 3 or \
                num[x] + num[y] + num[z] == 27 or num[x] + num[y] + num[z] == 26 or num[x] + num[y] + num[z] == 25 or \
                num[x] + num[y] + num[z] == 24 or num[x] + num[y] + num[z] == 20 or num[x] + num[y] + num[z] == 15 or \
                num[x] + num[y] + num[z] == 5:
            null += 1
            s12 += 1

        s1 = s11 + s12

        # <2>==Sequence

        if num[x] - num[y] == 1 and num[y] - num[z] == 1 or num[z] - num[y] == 1 and num[y] - num[x] == 1:
            null += 1
            s21 += 1
        if num[x] - num[y] == 2 and num[y] - num[z] == 2 or num[z] - num[y] == 2 and num[y] - num[x] == 2:
            null += 1
            s22 += 1
        if num[x] - num[y] == 3 and num[y] - num[z] == 3 or num[z] - num[y] == 3 and num[y] - num[x] == 3:
            null += 1
            s23 += 1
        if num[x] - num[y] == 4 and num[y] - num[z] == 4 or num[z] - num[y] == 4 and num[y] - num[x] == 4:
            null += 1
            s24 += 1

        s2 = s21 + s22 + s23 + s24

        # <3>==Data->XX

        if num[y] == issue:
            null += 1
            s31 += 1

        if num[x] == date:
            null += 1
            s32 += 1
        '''
        if num[z] == week:
            null += 1
            s33 += 1
        '''
        if num[z] == issue:
            null += 1
            s34 += 1

        s3 = s31 + s32 + s33 + s34

        # <4>==Key-Value

        if keyxxx == 0:
            iii = 8
        elif keyxxx == 1:
            iii = 5
        elif keyxxx == 2:
            iii = 2
        elif keyxxx == 3:
            iii = 7
        elif keyxxx == 4:
            iii = 4
        elif keyxxx == 5:
            iii = 1
        elif keyxxx == 6:
            iii = 9
        elif keyxxx == 7:
            iii = 6
        elif keyxxx == 8:
            iii = 3
        elif keyxxx == 9:
            iii = 0
        else:
            Flag = 0

        if keyxx == 0:
            jj = 8
        elif keyxx == 1:
            jj = 5
        elif keyxx == 2:
            jj = 2
        elif keyxx == 3:
            jj = 7
        elif keyxx == 4:
            jj = 4
        elif keyxx == 5:
            jj = 1
        elif keyxx == 6:
            jj = 9
        elif keyxx == 7:
            jj = 6
        elif keyxx == 8:
            jj = 3
        elif keyxx == 9:
            jj = 0
        else:
            Flag = 0

        if keyx == 0:
            kk = 8
        elif keyx == 1:
            kk = 5
        elif keyx == 2:
            kk = 2
        elif keyx == 3:
            kk = 7
        elif keyx == 4:
            kk = 4
        elif keyx == 5:
            kk = 1
        elif keyx == 6:
            kk = 9
        elif keyx == 7:
            kk = 6
        elif keyx == 8:
            kk = 3
        elif keyx == 9:
            kk = 0
        else:
            Flag = 0

        ij = str(iii) + str(jj)
        ik = str(iii) + str(kk)

        ijk = [ij, ik]
        ## insert into
        ijkk = [1, 3, 6, 8]
        if num[x] not in ijkk and num[y] not in ijkk and num[z] not in ijkk:
            null += 1
            ss1 += 1
        '''
        if str(num[x]) + str(num[y]) in ijk:
            null += 1
            ss1 += 1
        '''
        if str(num[y]) + str(num[z]) in ijk:
            null += 1
            ss2 += 1
        s4 = ss1 + ss2

        # <5>==Before_two
        if str(num[x]) + str(num[y]) == beforexx:
            null += 1
            s51 += 1
        if str(num[y]) + str(num[z]) == beforexx:
            null += 1
            s52 += 1
        s5 = s51 + s52

        # <6>==(Another)
        # <6-1:Method>==max_min
        lx = num[x]
        ly = num[y]
        lz = num[z]


        def max_min(lx, ly, lz):
            list = []
            list.append(lx)
            list.append(ly)
            list.append(lz)
            list.sort()
            return list


        c = max_min(lx, ly, lz)

        # <6-2:A>==直接
        if num[x] == 0:
            null += 1
            sa1 += 1
        if c[0] == 7 or c[0] == 8 or c[0] == 9:
            null += 1
            sa2 += 1
        if c[1] == 0 or c[1] == 9:
            null += 1
            sa3 += 1
        if c[2] == 0 or c[1] == 1:
            null += 1
            sa4 += 1
        if c[2] - c[0] == 0 or c[2] - c[0] == 1:
            null += 1
            sa5 += 1
        if num[x] == singlexxx:
            null += 1
            sa6 += 1
        s6_a = sa1 + sa2 + sa3 + sa4 + sa5 + sa6

        # <6-3:B>==間接
        if num[x] + num[y] == 0 or num[x] + num[y] == 17:
            null += 1
            sb1 += 1
        if num[x] + num[z] == 0 or num[x] + num[z] == 18:
            null += 1
            sb2 += 1
        if num[y] + num[z] == 0 or num[y] + num[z] == 18:
            null += 1
            sb3 += 1

        s6_b = sb1 + sb2 + sb3
        s6 = s6_a + s6_b

        # <7>==Write to seed[]
        if null == 0:
            seed.append(lists[ii])
        null = 0

    ########################################################################
    ### Assert + Result
    ## <1>==Assert
    actual = str(Tomorrow[0]) + str(Tomorrow[1]) + str(Tomorrow[2])
    if actual in seed:
        success += 1
        print("Success!!!")
        print("Success:" + str(lines[i + 1]))
    else:
        fail += 1
        print("Fail to forecast!!!")
    ## <2>==Result
    count = len(seed)
    pay = count * 2
    receive = 1040 - pay
    print("Pay:" + str(pay) + ", Receive:" + str(receive))

    if success > testFlag:
        balance = balance + receive
        testFlag = success
    else:
        balance = balance - pay
    payall = payall + pay

    ## <3-1>==Recovery1
    s1 = s2 = s3 = s4 = s5 = s6 = 0
    s11 = s12 = 0
    s21 = s22 = s23 = s24 = 0
    s31 = s32 = s33 = s34 = 0
    ss1 = ss2 = 0
    s51 = s52 = 0
    s6_a = s6_b = 0
    sa1 = sa2 = sa3 = sa4 = sa5 = sa6 = 0
    sb1 = sb2 = sb3 = sb4 = sb5 = 0

    ## <3-2>==Recovery2
    Tai = [1, 4, 6, 8, 9]
    Yesterday = []
    Today = []
    Tomorrow = []
    issue = []
    date = []
    week = []
    b = []

    beforexx = 0
    keyxxx = 0
    keyxx = 0
    keyx = 0
    pay = 0

    seed = []

## <Three>===Output Report
print("\nSuccess count:" + str(success) + "次")
print("Paycount: " + str(payall) + " yuan")
print("Receive: " + str(1040 * success) + " yuan")
print("Profit: " + str(balance) + " yuan")
print(len(lines))

print("Good Luck!!! I'm Lei Feng!!!")

¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥