求一个纸牌游戏中的概率问题,这是我们这儿玩的保皇游戏中遇到的一个问题,5个人玩的,规则是用4副牌,去掉11张3,然后洗牌后轮流抹牌,一个人是41张(54*4-11=205张,205/5=41张),还有一个规定,是如果
来源:学生作业帮助网 编辑:六六作业网 时间:2025/02/07 09:01:47
求一个纸牌游戏中的概率问题,这是我们这儿玩的保皇游戏中遇到的一个问题,5个人玩的,规则是用4副牌,去掉11张3,然后洗牌后轮流抹牌,一个人是41张(54*4-11=205张,205/5=41张),还有一个规定,是如果
求一个纸牌游戏中的概率问题,
这是我们这儿玩的保皇游戏中遇到的一个问题,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张),还有一个规定,是如果
我也觉得好复杂,明天来用程序搞定.
一种可靠性算法,大概思路如图
我用概率的观点写了程序.得到
num=10时,p=0.4
num=100时,p=0.33
num=1000时,p=0.313
num=10000时,p=0.2933
num=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 fat
end
p=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;
end
end
bond=sort(bond);