求一个纸牌游戏中的概率问题,
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/06 10:02:17
求一个纸牌游戏中的概率问题,
这是我们这儿玩的保皇游戏中遇到的一个问题,5个人玩的,规则是用4副牌,去掉11张3,然后洗牌后轮流抹牌,一个人是41张(54*4-11=205张,205/5=41张),还有一个规定,是如果抹到4到2中的一色的4张牌的话那是最大的了,叫扛子(如4个红心7、4个黑桃5等等),能压任何牌(因为是玩最后出3的,所以有了可以最后清3啊,^-^.).扛子可是不好抹到,有时好几把都没有,有时连着三把都抹到.于是我们就想算算,就这种抹牌法,打多少把能抹到一把有扛子的牌?一把牌一个扛子两个扛子都算!
这是我们这儿玩的保皇游戏中遇到的一个问题,5个人玩的,规则是用4副牌,去掉11张3,然后洗牌后轮流抹牌,一个人是41张(54*4-11=205张,205/5=41张),还有一个规定,是如果抹到4到2中的一色的4张牌的话那是最大的了,叫扛子(如4个红心7、4个黑桃5等等),能压任何牌(因为是玩最后出3的,所以有了可以最后清3啊,^-^.).扛子可是不好抹到,有时好几把都没有,有时连着三把都抹到.于是我们就想算算,就这种抹牌法,打多少把能抹到一把有扛子的牌?一把牌一个扛子两个扛子都算!
我也觉得好复杂,明天来用程序搞定. 一种可靠性算法,大概思路如图我用概率的观点写了程序.得到num=10时,p=0.4num=100时,p=0.33num=1000时,p=0.313num=10000时,p=0.2933num=100000时,p=0.2968打了num盘,五个人中至少有一个人拿到扛子概率为p所以你打二盘,一把都没扛子的概率是0.4945 你打七盘,一把都没扛子的概率是0.0851 可以很有把握地说打七盘必要一盘有扛子.程序如下:A=(1:13)';B=[A A A A];C=[10*B+1 10*B+2 10*B+3 10*B+4];D=reshape(C',1,208);D([206:end])=[] ; %D中元素除十的商表示点数,1:13分别表示12345678910JQK %除十的余数表示花色,1234分别表示桃心梅方 %然后呢我修正一下,去掉11个K.大鬼用131表示,小鬼用132表示 %那个D的值就可以表示一种牌了,比如说红桃六D1=D;num=100000;NUM=num;myoccur=0;while(NUM>0) D=D1; NUM=NUM-1; %现在发牌 N=205;flag=0; while(N>0&&0==flag) bondfat=Card(N); %在1:N里随机41个数,即随机挑41张牌 N=N-41; fat=D(bondfat); %将这41张牌发给fat D(bondfat)=[]; %减去这41张牌 for i=1:(41-4) %判断是否有扛子,有则flag=1,否则flag=0 if fat(i)==fat(i+3) flag=1; break; end end end myoccur=myoccur+flag; clear N bondfat fatendp=myoccur/num % % % % % % % % % % % % % % % % % % % % % % %function bond=Card(N) %在1:N里随机41个数M=41;bond1=1:N;bond=zeros(1,M);i=1;while(i~=M+1) temp=bond1(unidrnd(N,1)); if temp~=0 bond(i)=temp; bond1(temp)=0; i=i+1; endendbond=sort(bond);