亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        古典概型及程序模擬在“清墩”牌型算法中的應用

        2016-12-19 07:26:34劉佳樂劉志松徐優(yōu)紅
        大學數(shù)學 2016年5期
        關鍵詞:撲克后驗炸彈

        劉佳樂,劉志松,徐優(yōu)紅

        (浙江海洋大學數(shù)學系,浙江舟山316022)

        ?

        古典概型及程序模擬在“清墩”牌型算法中的應用

        劉佳樂,劉志松,徐優(yōu)紅

        (浙江海洋大學數(shù)學系,浙江舟山316022)

        清墩是起源于舟山的一種撲克游戲,是地方特色文化的組成部分,但是到目前為止部分游戲規(guī)則尚不完善.本文以舟山清墩作為研究對象,先使用數(shù)學理論計算部分牌型的先驗概率,再通過電腦程序模擬(以C-Free5來實現(xiàn))統(tǒng)計后驗概率,通過對比先驗概率和后驗概率最終確定該牌型出現(xiàn)的概率值.根據(jù)牌型出現(xiàn)概率大小判定牌型的大小,以完善清墩游戲規(guī)則,促進地方文化的發(fā)揚廣大.

        清墩; 概率; 程序模擬; 先驗概率; 后驗概率

        1 引 言

        清墩是一種具有鮮明舟山特色的撲克游戲[1],漁民苦于海上作業(yè),發(fā)明了此游戲以聊解寂寞.初步探究約八十年代末期始流行于浙江省舟山市岱山縣長涂鎮(zhèn),九十年代中期開始在浙江省舟山市各地風行,目前已成為舟山各大機構職工活動的一項重要娛樂項目.清墩游戲使用三副撲克,由于出牌規(guī)則相對簡單,牌的組合方式非常靈活多樣.正因如此,導致其牌型概率算法非常復雜,本文以計算清墩撲克游戲中炸彈(炸彈指的是同點數(shù)牌的張數(shù)≥4的牌型,此處暫且記它為4線炸;類似可定義5線炸,…)出現(xiàn)的概率為例,在不影響概率關系的前提下簡化模型,將概率空間由四個玩家手中所持牌縮小為單個玩家手中手中所持牌,先用古典概型的理論方法計算其出現(xiàn)的先驗概率,再利用計算機程序模擬的統(tǒng)計方法驗證牌型出現(xiàn)的后驗概率,通過對照修正,得到該牌型出現(xiàn)的概率值.

        2 理論計算

        在具體牌型出現(xiàn)的概率計算中,由于游戲中使用三副撲克,且牌型組合非常自由,給概率計算帶來很大困難. 為此我們首先將各種牌型的模型進行簡化,利用概率加法公式對其進行拆分細化[2],然后充分借用概率論知識中的多種方法及其變形公式,以及一定的運算技巧,得到理論計算值.

        為了表示方便,我們記牌大小A,2,3,…,K為炸彈的事件分別為B1,B2,…,B13,則由概率的加法公式[3]可以知道出現(xiàn)炸彈的概率:

        考慮到每個人摸到的牌數(shù)量不一樣,在此我們主要研究了摸到牌的數(shù)量為40張的情形,對于摸到41張牌的情況可同樣處理.因Bi可能性太多,考慮其對立事件,即i點數(shù)的牌摸到了0張,1張,2張,3張,故

        因為事件Bi和Bj(i,j=1,2…,13i≠j)有相同的概率分布,所以

        同理

        … …

        并且注意到P(B1B2…B11)及后兩項均不可能發(fā)生(因牌量總共40張,此處若發(fā)生,牌量必大于等于44張),故由上面的計算可以得到

        # include

        double com(int m,int n)∥m中取n個

        {

        double i,j,sum=1;

        for (i=m,j=0;j

        {

        sum=sum*i/(j+1);

        }

        return sum;

        }

        int main()

        { double a,b,c,sum=0;

        for(a=0;a<=3;a++)

        {for(b=0;b<=3;b++)

        { for(c=0;c<=3;c++)

        sum=sum+com(12,a)*com(12,b)*com(12,c)*com(162-12*3,40-a-b-c)/com(162,40);

        }

        }

        printf("%20.15lf",sum);

        return 0;

        }

        注意:此處限于篇幅,未能把程序一一列出.事實上,在真正計算過程中,為了使結(jié)果更加準確,程序計算結(jié)果應該一次性實現(xiàn),而不應該像上面那樣分開計算每一項再求和.通過整個計算的過程,得到的最終結(jié)果P為0.999991748944871 .

        3 計算機程序模擬計算

        此處利用計算機程序編程模擬[4]得到出現(xiàn)炸彈的概率,以便進一步檢驗我們理論計算的結(jié)果.

        #include

        #include

        #include

        #include

        #define TOTALNUM 162

        #define DECKOFCARDS 54

        enum POKER_SUIT{

        CLUB, ∥梅花

        DIAMOND, ∥方塊

        HEART, ∥紅桃

        SPADE, ∥黑桃

        BLACK_JOKER, ∥小王

        RED_JOKER ∥大王

        };

        struct Poker

        {

        int point;

        POKER_SUIT suit;

        };

        ∥初始化一副牌

        void InitOneDeckOfCards(Poker pokers[DECKOFCARDS])

        {

        int size = 13; ∥每種花色13張

        int i;

        ∥將每種花色依次放進一副牌

        for(i = 0; i < size; i++)

        {

        pokers[i].point = i+1;

        pokers[i].suit = CLUB;

        }

        for( ; i < 2 * size; i++)

        {

        pokers[i].point = i % size+1;

        pokers[i].suit = DIAMOND;

        }

        for( ; i < 3 * size; i++)

        {

        pokers[i].point = i % size + 1;

        pokers[i].suit = HEART;

        }

        for( ; i < 4 * size; i++)

        {

        pokers[i].point = i % size + 1;

        pokers[i].suit = SPADE;

        }

        ∥把大小王放在一副牌的最后兩張

        pokers[52].point = 14;

        pokers[52].suit = BLACK_JOKER;

        pokers[53].point = 15;

        pokers[53].suit = RED_JOKER;

        }

        ∥隨機打亂162張牌的順序,模擬洗牌過程

        void ShuffleCards(Poker pokers[TOTALNUM])

        {

        在 i-162中隨機抽取一張放在第i個位置

        for(int i = 0; i < TOTALNUM; i++)

        {

        int index = (rand() % (TOTALNUM - i)) + i;

        Poker p = pokers[index];

        pokers[index] = pokers[i];

        pokers[i] = p;

        }

        }

        ∥統(tǒng)計n張牌中是否有炸彈,有返回 1, 無返回 0

        int HavaBomb(Poker pokers[], int n)

        {

        int result[15] = {0}; ∥存放每一個點數(shù)的牌的數(shù)量

        for(int i = 0; i < n; i++)

        {

        int point = pokers[i].point;

        result[point-1] += 1; ∥point 存放在下標為point-1的位置上

        if(result[point-1] >= 4)

        return 1;

        }

        return 0;

        }

        int main()

        {

        Poker p54Cards[DECKOFCARDS];

        InitOneDeckOfCards(p54Cards);

        unsigned size = DECKOFCARDS * sizeof(Poker);

        Poker p162Cards[TOTALNUM];

        memcpy(p162Cards, p54Cards, size);

        memcpy(&p162Cards[54], p54Cards, size);

        memcpy(&p162Cards[108], p54Cards, size);

        srand((unsigned)time(0));

        int t = 0, bomb = 0, totalTime = 1000000000;

        double Prob;

        while(t++ < totalTime)

        {

        ShuffleCards(p162Cards);

        if(HavaBomb(p162Cards, 40) == 1)

        bomb++;

        }

        Prob=bomb/totalTime;

        printf("測試次數(shù): %d, 有炸彈次數(shù): %d ", totalTime, bomb);

        printf("Prob=%20.15lf",Prob);

        getchar();

        return 0;

        }

        運行結(jié)果(即出現(xiàn)炸彈的概率)為0.999991848000000 .

        注意:此代碼對計算撲克牌中其他牌型的概率也適用,只需在相應的地方適當修改即可.

        4 總 結(jié)

        一方面,通過對比理論計算和程序模擬得到的結(jié)果,不難發(fā)現(xiàn)這兩處計算得到的結(jié)果相當吻合,誤差僅為10-7,也可以進一步加大模擬次數(shù)使結(jié)果更加精準;另一方面,我們發(fā)現(xiàn)不出現(xiàn)四線炸的概率極小,也正是因為這種小概率事件的發(fā)生更加反映出我們計算結(jié)果的準確性.

        首先,本文從理論出發(fā),用實踐檢驗理論[5],充分調(diào)動學生的主觀能動性,加強學生動手動腦的能力,讓學生把書讀好讀活;其次,清墩游戲深受舟山居民喜愛,是居民飯后茶余主要的休閑娛樂方式之一,也是舟山文化的一張名片,本文以此為背景引入課題,將數(shù)學的理論計算,計算機的程序模擬與文化的保護與傳承相結(jié)合,這是本文的一大特色;最后,我們計劃在之后的研究中進一步計算清墩中所有牌型的概率,從而完善游戲規(guī)則.

        [1] 張同寬. 舟山清墩運動研究[J]. 體育文化導刊,2011(5):32-35.

        [2] 陳維.概率論中事件的分割思想及其應用[J]. 大學數(shù)學,2011,27(2):159-161.

        [3] 茆師松,程依明,濮小龍.概率論與數(shù)理統(tǒng)計教程[M].2版.北京:高等教育出版社,2011:32-36.

        [4] 曹一鳴. 基于蒙特卡羅樹搜索的計算機撲克程序[D]. 北京郵電大學碩士論文,2014.

        [5] 沙秀艷,辛杰.《概率論與數(shù)理統(tǒng)計》教學實踐與探索[J].大學數(shù)學,2013,29(4):9-12.

        Classical Probability Calculation and Simulation Program Used in the "Qingdun" Poker Type Algorithm

        LIUJia-le,LIUZhi-song,XUYou-hong

        (Department of Mathematics, Zhejiang Ocean University, Zhoushan, Zhejiang 316022, China)

        Qingdun is a kind of Poker game originated from Zhoushan city, Zhejiang province, It’s a component of local distinctive culture. But some rules of the game is still incomplete. In this paper, we mainly research probability of some card type. Theoretical method will be used to calculate the prior probability firstly, and then we use computer programs based on C-Free5 to simulate the game and statistics the posterior probability. Contrast the prior probability and posterior probability and modification some procedure until we obtain the precise probability of some card type.

        Qingdun; probability ; simulate; prior probability ; posterior probability

        2016-03-01; [修改日期]2016-06-07

        浙江省自然科學基金項目(LQ12A01007);浙江省高等教育課堂教學改革研究項目(Kg2013197)

        劉佳樂(1994-)男,本科在讀,應用數(shù)學專業(yè).Email:434870031@qq.com.

        O211; O242

        C

        1672-1454(2016)05-0088-04

        猜你喜歡
        撲克后驗炸彈
        小撲克打出大品牌
        華人時刊(2022年15期)2022-10-27 09:06:08
        基于對偶理論的橢圓變分不等式的后驗誤差分析(英)
        開心炸彈
        開始炸彈
        貝葉斯統(tǒng)計中單參數(shù)后驗分布的精確計算方法
        開心炸彈
        開心炸彈
        一種基于最大后驗框架的聚類分析多基線干涉SAR高度重建算法
        雷達學報(2017年6期)2017-03-26 07:53:04
        最環(huán)保的撲克版空氣加濕器
        基于貝葉斯后驗模型的局部社團發(fā)現(xiàn)
        国产乱码卡二卡三卡老狼| 日本护士一区二区三区高清热线| 国产人妻精品一区二区三区| 亚洲h视频| 青青草极品视频在线播放| 国产成人亚洲精品91专区高清| 夹得好湿真拔不出来了动态图| 无套内谢的新婚少妇国语播放| 日韩精品一区二区三区四区| 国产我不卡在线观看免费| 午夜天堂av天堂久久久| 日韩成人大屁股内射喷水| 精品一区二区三区免费爱| 久久中文字幕国产精品| 琪琪色原网站在线观看| 亚洲欧美日韩国产精品专区| 国产乱子伦农村xxxx| 亚洲精品国产综合久久| 无码中文亚洲av影音先锋| 国产成人av一区二区三区无码| 亚洲日本人妻中文字幕| 国产流白浆视频在线观看| 少妇av射精精品蜜桃专区| 国产成人免费a在线视频| 国产视频一区二区三区免费| 日产乱码一二三区别免费l| 欧美最猛黑人xxxx黑人表情| 欧美激情精品久久999| 东京热加勒比视频一区| 精品久久久久久无码中文字幕| 麻豆国产成人精品午夜视频| 久久麻豆精亚洲av品国产精品| 日韩精品专区在线观看| 精品少妇人妻av一区二区| 欧美日韩性高爱潮视频| sm免费人成虐漫画网站| 国产农村妇女精品一区| 一本一道av中文字幕无码| 国产熟女精品一区二区三区| 国产一区二区三区男人吃奶| 国产成人a在线观看视频免费|