亚洲免费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)
        亚洲成人中文字幕在线视频 | 北条麻妃国产九九九精品视频| 八戒网站免费观看视频| 99精品视频69v精品视频免费| 国产免费一区二区三区在线观看 | 国产精品一区二区三区女同| 亚洲最大中文字幕熟女| 国产激情视频一区二区三区| 成人伊人亚洲人综合网站222| av熟女一区二区久久| 日本一级二级三级不卡| 国产精品亚洲lv粉色| 久久精品国产日本波多麻结衣| 国产一区二区三区杨幂| 国产一区二区三区十八区| 无码人妻aⅴ一区二区三区| 国产肉体ⅹxxx137大胆| 久久久高清免费视频| 亚洲婷婷久久播66性av| 精品国产青草久久久久福利| 欧美白人最猛性xxxxx| 亚洲免费不卡av网站| 丰满的少妇av一区二区三区| 天天综合网在线观看视频| 欧美va免费精品高清在线| 国产精品久久夜伦鲁鲁| 国产美女主播视频一二三区 | 色综合久久五月天久久久| 日本护士口爆吞精视频| 黑色丝袜秘书夹住巨龙摩擦| 四虎欧美国产精品| 一级a免费高清免在线| 无码av天天av天天爽| 天天综合亚洲色在线精品| 精品国产AⅤ一区二区三区V免费| 91色综合久久熟女系列| 成人av鲁丝片一区二区免费| 精品人妻无码视频中文字幕一区二区三区 | 亚洲av永久无码精品网站在线观看| 国产91中文| 亚洲色图少妇熟女偷拍自拍|