admin管理员组文章数量:1130349
世界大战
今天下午去广州,坐绿皮火车。所以,早上就起来更一篇。
去看[A CLASSIC TOUR 学友.经典]世界巡回演唱会 广州站。
我还没有去看过演唱会。周杰伦2008年在重庆开的演唱会的时候都没去 =_=
那个时候想的是要中考-_-!
今天写的是划拳喝酒……。重庆的朋友大概应该知道,世界大战。
反正我喝不了几杯。三杯前还在世界大战,三杯后就应该世界和平,战后重建了。因为我实在喝不了-_-!
游戏规则大致是“先选酒,再选人”。
一桌人吃饭,一共(m+n)人,要通过游戏比赛,决定谁喝酒。
甲和乙站出来,分别代表A队和B队。
甲、乙划拳。(石头-剪刀-布或15-20-15或棒棒棒棒鸡等)都可以。赢的那个人决定,最后的输家要喝几杯酒,怎么喝?一人几杯 or 总共几杯 ……
选完酒以后,开始选人。
每赢一轮,赢家就在还没有指定队伍的人中,挑一个人过来。
直到所有人都分配完毕。这时A队和B队分别有m和n人。
下面开始火拼。
A队和B队任出一个人出来,通过划拳的方式角逐。
赢者守擂,不换人。但输者就死了,下场。同时,输掉的那一队,从活着的人中,再挑一个人出来,
和赢的这个人继续划拳比赛,直到某一方死完为止。
我们寝室有个杨老师,基本上在挑人的时候,自己这一边的人就会远远小于另一边的人。
所以经常最后输掉,以至于我们都怕杨老师喝酒阵亡了。
有一次,杨老师这边3个人,我们这边5个人,眼看着杨老师要翻盘,结果最后还是不幸阵亡。
于是,我就想问,如果按照上述游戏规则,A队m个人,B队n个人,A、B两队获胜的概率分别是多少。
假设每次划拳胜算都是5-5开。
%% 世界大战
% 内容:仿真划拳喝酒。验证概率。
% 作者:qcy
% 版本:v1.0
% 时间:2016年10月24日11:05:36%% 思路
% 1. 初始化两个变量X和Y,为双方存活的人数。初始化输的局数n_lose_X=0,n_lose_Y=0。
% 2. 等概率生成 0-1
% 3. 如果是0,则X--;否则,Y--,直到X==0或Y==0,至4.。否则继续进行2。
% 4. 若 X==0,则n_lose_X++;若Y==0,则n_lose_Y++。
% 以上为1局的结果。可以多次重复1-4。%% 检验是否几乎等概率生成0-1
% for k = 1:n_total
%
% rand_number = randi(2,1,1) - 1;
% if rand_number == 0
% n_total_0 = n_total_0 + 1;
% else
% n_total_1 = n_total_1 + 1;
% end
%
% end%%
clear;
close all;
clc%% [1挑2]
% N_total = 1e4;
% N_X_group = 1;
% N_Y_group = 3;
% X = N_X_group;
% Y = N_Y_group;
% n_lose_X = 0;
% n_lose_Y = 0;
% n_total_0 = 0;
% n_total_1 = 0;
%
% for k = 1:N_total % 仿真n_total局
% is_current_game_over = 0; % 游戏开始
% % 每局开始前,初始化双方人数
% X = N_X_group;
% Y = N_Y_group;
% while is_current_game_over == 0 % 一局中进行游戏
% rand_number = randi(2,1,1) - 1;
% if rand_number == 0
% n_total_0 = n_total_0 + 1;
% X = X - 1;
% else
% n_total_1 = n_total_1 + 1;
% Y = Y - 1;
% end
% if X == 0 % X输这局
% n_lose_X = n_lose_X + 1;
% is_current_game_over = 1;
% elseif Y == 0 % Y输这局
% n_lose_Y = n_lose_Y + 1;
% is_current_game_over = 1;
% else
%
% end
% end
%
% end
%
% % X输掉的概率
% prob_X_lose = n_lose_X / N_total%% 造一张表出来N_total = 1e4;
N_X_group = 10;
N_Y_group = 10;
P = size(N_X_group,N_Y_group);for m = 1:N_X_groupfor n = 1:N_Y_groupX = m;Y = n;n_lose_X = 0;n_lose_Y = 0;n_total_0 = 0;n_total_1 = 0;for k = 1:N_total % 仿真n_total局is_current_game_over = 0; % 游戏开始% 每局开始前,初始化双方人数X = m;Y = n;while is_current_game_over == 0 % 一局中进行游戏rand_number = randi(2,1,1) - 1;if rand_number == 0n_total_0 = n_total_0 + 1;X = X - 1;elsen_total_1 = n_total_1 + 1;Y = Y - 1;endif X == 0 % X输这局n_lose_X = n_lose_X + 1;is_current_game_over = 1;elseif Y == 0 % Y输这局n_lose_Y = n_lose_Y + 1;is_current_game_over = 1;elseendendend% X输掉的频率prob_X_lose = n_lose_X / N_total;P(m,n) = prob_X_lose;end
end%% 打印结果
P%% 画图figure(1);
x_axis = 1:N_X_group;
y_axis = 1:N_Y_group;
imagesc(x_axis,y_axis,P);
title('喝酒的频率');
xlabel('甲队人数');
ylabel('乙队人数');
colorbar
%
% surf(P);
计算机蛮干,仿个真模拟模拟。
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
| 1 | 0.5008 | 0.7494 | 0.873 | 0.939 | 0.9687 | 0.9861 | 0.9933 | 0.9965 | 0.9979 | 0.9995 |
| 2 | 0.2478 | 0.5057 | 0.6723 | 0.8094 | 0.8924 | 0.9365 | 0.963 | 0.9792 | 0.9881 | 0.9936 |
| 3 | 0.1211 | 0.3138 | 0.5004 | 0.6592 | 0.7725 | 0.851 | 0.9088 | 0.9443 | 0.967 | 0.9782 |
| 4 | 0.064 | 0.1859 | 0.3449 | 0.5091 | 0.6424 | 0.7497 | 0.8259 | 0.8837 | 0.9293 | 0.9545 |
| 5 | 0.0329 | 0.1047 | 0.2204 | 0.3638 | 0.495 | 0.6282 | 0.7308 | 0.8072 | 0.8655 | 0.9091 |
| 6 | 0.0145 | 0.0607 | 0.1413 | 0.2525 | 0.3826 | 0.502 | 0.6149 | 0.7071 | 0.7846 | 0.8491 |
| 7 | 0.0089 | 0.0352 | 0.0879 | 0.1712 | 0.2706 | 0.385 | 0.4996 | 0.6067 | 0.6979 | 0.7706 |
| 8 | 0.0035 | 0.0193 | 0.0557 | 0.1133 | 0.1962 | 0.2812 | 0.4013 | 0.4995 | 0.6016 | 0.6955 |
| 9 | 0.0017 | 0.0098 | 0.0327 | 0.0741 | 0.1321 | 0.2132 | 0.307 | 0.4023 | 0.5067 | 0.5935 |
| 10 | 0.0013 | 0.0058 | 0.0186 | 0.0457 | 0.0906 | 0.1542 | 0.2263 | 0.3115 | 0.4041 | 0.504 |
看样子,杨老师当时3挑5没有翻盘,也是很正常了。因为……大概77%会输……
太惨了……………………
---------------------
更新于 20200909
和以下假设似乎不一样。
公平赌博,你有3块,我有5块,谁输了,谁给对方1块钱。这样你输光的概率是3/8。
而上文游戏的队员,一旦阵亡,就不能再比了。跟1块钱还可以重复使用,还是有区别。
世界大战
今天下午去广州,坐绿皮火车。所以,早上就起来更一篇。
去看[A CLASSIC TOUR 学友.经典]世界巡回演唱会 广州站。
我还没有去看过演唱会。周杰伦2008年在重庆开的演唱会的时候都没去 =_=
那个时候想的是要中考-_-!
今天写的是划拳喝酒……。重庆的朋友大概应该知道,世界大战。
反正我喝不了几杯。三杯前还在世界大战,三杯后就应该世界和平,战后重建了。因为我实在喝不了-_-!
游戏规则大致是“先选酒,再选人”。
一桌人吃饭,一共(m+n)人,要通过游戏比赛,决定谁喝酒。
甲和乙站出来,分别代表A队和B队。
甲、乙划拳。(石头-剪刀-布或15-20-15或棒棒棒棒鸡等)都可以。赢的那个人决定,最后的输家要喝几杯酒,怎么喝?一人几杯 or 总共几杯 ……
选完酒以后,开始选人。
每赢一轮,赢家就在还没有指定队伍的人中,挑一个人过来。
直到所有人都分配完毕。这时A队和B队分别有m和n人。
下面开始火拼。
A队和B队任出一个人出来,通过划拳的方式角逐。
赢者守擂,不换人。但输者就死了,下场。同时,输掉的那一队,从活着的人中,再挑一个人出来,
和赢的这个人继续划拳比赛,直到某一方死完为止。
我们寝室有个杨老师,基本上在挑人的时候,自己这一边的人就会远远小于另一边的人。
所以经常最后输掉,以至于我们都怕杨老师喝酒阵亡了。
有一次,杨老师这边3个人,我们这边5个人,眼看着杨老师要翻盘,结果最后还是不幸阵亡。
于是,我就想问,如果按照上述游戏规则,A队m个人,B队n个人,A、B两队获胜的概率分别是多少。
假设每次划拳胜算都是5-5开。
%% 世界大战
% 内容:仿真划拳喝酒。验证概率。
% 作者:qcy
% 版本:v1.0
% 时间:2016年10月24日11:05:36%% 思路
% 1. 初始化两个变量X和Y,为双方存活的人数。初始化输的局数n_lose_X=0,n_lose_Y=0。
% 2. 等概率生成 0-1
% 3. 如果是0,则X--;否则,Y--,直到X==0或Y==0,至4.。否则继续进行2。
% 4. 若 X==0,则n_lose_X++;若Y==0,则n_lose_Y++。
% 以上为1局的结果。可以多次重复1-4。%% 检验是否几乎等概率生成0-1
% for k = 1:n_total
%
% rand_number = randi(2,1,1) - 1;
% if rand_number == 0
% n_total_0 = n_total_0 + 1;
% else
% n_total_1 = n_total_1 + 1;
% end
%
% end%%
clear;
close all;
clc%% [1挑2]
% N_total = 1e4;
% N_X_group = 1;
% N_Y_group = 3;
% X = N_X_group;
% Y = N_Y_group;
% n_lose_X = 0;
% n_lose_Y = 0;
% n_total_0 = 0;
% n_total_1 = 0;
%
% for k = 1:N_total % 仿真n_total局
% is_current_game_over = 0; % 游戏开始
% % 每局开始前,初始化双方人数
% X = N_X_group;
% Y = N_Y_group;
% while is_current_game_over == 0 % 一局中进行游戏
% rand_number = randi(2,1,1) - 1;
% if rand_number == 0
% n_total_0 = n_total_0 + 1;
% X = X - 1;
% else
% n_total_1 = n_total_1 + 1;
% Y = Y - 1;
% end
% if X == 0 % X输这局
% n_lose_X = n_lose_X + 1;
% is_current_game_over = 1;
% elseif Y == 0 % Y输这局
% n_lose_Y = n_lose_Y + 1;
% is_current_game_over = 1;
% else
%
% end
% end
%
% end
%
% % X输掉的概率
% prob_X_lose = n_lose_X / N_total%% 造一张表出来N_total = 1e4;
N_X_group = 10;
N_Y_group = 10;
P = size(N_X_group,N_Y_group);for m = 1:N_X_groupfor n = 1:N_Y_groupX = m;Y = n;n_lose_X = 0;n_lose_Y = 0;n_total_0 = 0;n_total_1 = 0;for k = 1:N_total % 仿真n_total局is_current_game_over = 0; % 游戏开始% 每局开始前,初始化双方人数X = m;Y = n;while is_current_game_over == 0 % 一局中进行游戏rand_number = randi(2,1,1) - 1;if rand_number == 0n_total_0 = n_total_0 + 1;X = X - 1;elsen_total_1 = n_total_1 + 1;Y = Y - 1;endif X == 0 % X输这局n_lose_X = n_lose_X + 1;is_current_game_over = 1;elseif Y == 0 % Y输这局n_lose_Y = n_lose_Y + 1;is_current_game_over = 1;elseendendend% X输掉的频率prob_X_lose = n_lose_X / N_total;P(m,n) = prob_X_lose;end
end%% 打印结果
P%% 画图figure(1);
x_axis = 1:N_X_group;
y_axis = 1:N_Y_group;
imagesc(x_axis,y_axis,P);
title('喝酒的频率');
xlabel('甲队人数');
ylabel('乙队人数');
colorbar
%
% surf(P);
计算机蛮干,仿个真模拟模拟。
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
| 1 | 0.5008 | 0.7494 | 0.873 | 0.939 | 0.9687 | 0.9861 | 0.9933 | 0.9965 | 0.9979 | 0.9995 |
| 2 | 0.2478 | 0.5057 | 0.6723 | 0.8094 | 0.8924 | 0.9365 | 0.963 | 0.9792 | 0.9881 | 0.9936 |
| 3 | 0.1211 | 0.3138 | 0.5004 | 0.6592 | 0.7725 | 0.851 | 0.9088 | 0.9443 | 0.967 | 0.9782 |
| 4 | 0.064 | 0.1859 | 0.3449 | 0.5091 | 0.6424 | 0.7497 | 0.8259 | 0.8837 | 0.9293 | 0.9545 |
| 5 | 0.0329 | 0.1047 | 0.2204 | 0.3638 | 0.495 | 0.6282 | 0.7308 | 0.8072 | 0.8655 | 0.9091 |
| 6 | 0.0145 | 0.0607 | 0.1413 | 0.2525 | 0.3826 | 0.502 | 0.6149 | 0.7071 | 0.7846 | 0.8491 |
| 7 | 0.0089 | 0.0352 | 0.0879 | 0.1712 | 0.2706 | 0.385 | 0.4996 | 0.6067 | 0.6979 | 0.7706 |
| 8 | 0.0035 | 0.0193 | 0.0557 | 0.1133 | 0.1962 | 0.2812 | 0.4013 | 0.4995 | 0.6016 | 0.6955 |
| 9 | 0.0017 | 0.0098 | 0.0327 | 0.0741 | 0.1321 | 0.2132 | 0.307 | 0.4023 | 0.5067 | 0.5935 |
| 10 | 0.0013 | 0.0058 | 0.0186 | 0.0457 | 0.0906 | 0.1542 | 0.2263 | 0.3115 | 0.4041 | 0.504 |
看样子,杨老师当时3挑5没有翻盘,也是很正常了。因为……大概77%会输……
太惨了……………………
---------------------
更新于 20200909
和以下假设似乎不一样。
公平赌博,你有3块,我有5块,谁输了,谁给对方1块钱。这样你输光的概率是3/8。
而上文游戏的队员,一旦阵亡,就不能再比了。跟1块钱还可以重复使用,还是有区别。
本文标签: 世界大战
版权声明:本文标题:世界大战 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/IT/1687500162a109376.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论