【问题标题】:Simulate an unfair die模拟不公平的死亡
【发布时间】:2018-09-28 07:22:30
【问题描述】:

所以,我必须在 MATLAB 中模拟抛掷不公平骰​​子,它有 20% 的概率显示 1 和 4 之间的每个面,以及 10% 的概率显示 5 和 6 的每个面。我有生成 5000 个随机整数,代表掷骰子的结果。我还必须使用 5000 次重复试验打印出模拟的期望值和标准差。

这是我在 MATLAB 中编写的代码:

x=randi(6,1,5000); %Generate 5000 random values from 1-6

mean_x = mean(x);    %Find expected value
std_x = std(x);      %Find standard deviation

range_x = [1:6];

bar(range_x, pmf);    %plot the pmf

xlabel('Value of face')
ylabel('Simulated probability mass function')

fprintf('The expected value is %4.2f\n',mean_x);
fprintf('The standard deviation is %4.2f\n', std_x);


function pmf=finitepmf(sx,px,x) %function that finds pmf

    pmf=zeros(size(x(:))); 

    for i=1:length(x) 
        switch x(i)
            case 1 
                px = 0.2;
            case 2 
                px = 0.2;
            case 3 
                px = 0.2;
            case 4 
                px = 0.2;
            case 5 
                px = 0.1;
            case 6 
                px = 0.1;
        end
        pmf(i)= sum(px(find(sx==x(i)))); 
    end

end

但是,如果骰子是公平的,我会得到相同的pmf。我做错了什么?

【问题讨论】:

  • 自从我接触 matlab 以来已经有好几年了,但是对于 1。您正在计算原始正常模具的平均值和标准偏差,而不是装配模具。
  • 你在哪里调用finitepmf? sx,px,x在哪里传入?
  • 当我运行你的代码时,它显示Undefined function or variable 'pmf'.

标签: matlab random


【解决方案1】:

这是一个比 Luis 的 randsample 少得多的通用解决方案,但它非常简单,我希望能教一些东西。

由于你的概率都很好地四舍五入到 10%,你可以将一个公平的 10 面骰子转换为不公平的 6 面骰子:

map = [1,1,2,2,3,3,4,4,5,6];

map 会将整数 1-10 转换为整数 1-6,其中 1-4 被选中的几率是 5-6 的两倍。

现在绘制 5000 个随机整数 1-10,并将它们映射:

x = map(randi(10,1,5000));

与公平的 6 面模具相比:

y = randi(6,1,5000);
hx = hist(x,1:6);
hy = hist(y,1:6);

我明白了:

hx = [ 988  1029  1022   967   505   489 ]
hy = [ 827   884   833   771   849   836 ]

【讨论】:

  • 非常感谢克里斯。现在我懂了。我从来没有想过这样的解决方案。
【解决方案2】:

如果您有统计(和机器学习)工具箱,请使用具有指定权重的randsample

result = randsample(6, 5000, true, [.2 .2 .2 .2 .1 .1]);

检查:

histogram(result)

【讨论】:

    猜你喜欢
    • 2015-12-04
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 2018-02-22
    • 2022-11-27
    • 2011-11-07
    • 2022-01-24
    相关资源
    最近更新 更多