欢迎光临散文网 会员登陆 & 注册

北太天元学习6-补充例子-美女的硬币的实验

2023-09-21 08:16 作者:卢朓  | 我要投稿


美女的硬币

%北太天元模拟美女的硬币的游戏

%一位陌生美女主动过来和你搭讪,并要求和你一起玩个游戏。
%美女提议:“让我们各自亮出硬币的一面,或正或反。
%如果我们都是正面,那么我给你3元,如果我们都是反面,我给你1元,
%剩下的情况你给我2元就可以了。”

% 绅士采用的策略是以概率p出硬币的正面,
% 美女采用的策略是以概率q出硬币的正面
% 美女绅士一共玩了N 轮
% 第i轮的收益会存储在mei(i)中
% 我们可以用 sum(mei)/N 计算收益的平均值
N = 10000;
%美女收益
mei = zeros(N,1);

% 绅士出正的概率 p
p = 0.5;
% 美女出正的概率 q
q = 3/8;
% 是否使用向量运算(区别于通过for循环对向量的每一个分量操作)
use_vec = false;  % true 或者false

%%向量化操作,速度更快,但是需要仔细解释
if(use_vec)
    sp  = rand(N,1) < p;
    mp  = rand(N,1) < q;
    mei = (-3)* sum( (sp.*mp)) ... % 两人同时出正面
                + 2 * sum( (1-sp) .* mp )  ... %绅士出反面,美女出反面
                + 2 * sum( sp .* (1-mp) ) ...
                + (-1) * sum( (1-sp) .* (1-mp) );
end

%% for 循环代码,虽然更慢,但是似乎更好懂。
if(~use_vec)
    for i = 1:N
        shen_zheng = rand < p;
        mei_zheng  = rand < q;
        mei(i) = -3 * (  shen_zheng && mei_zheng)  ...
                         -1 * (  ~shen_zheng && ~mei_zheng) ...
                         +2 * ( shen_zheng && ~mei_zheng) ...
                         +2 * ( ~shen_zheng && mei_zheng);
    end
end

收益的平均值 = sum(mei)/N

北太天元学习6-补充例子-美女的硬币的实验的评论 (共 条)

分享到微博请遵守国家法律