【问题标题】:Coin toss simulation抛硬币模拟
【发布时间】:2017-02-27 23:15:18
【问题描述】:
clear all
%heads>=0.5 %tails<0.5
for i=1:500
    coin=rand(1,2);     
    A=[coin];
    toss=1;
while coin(1)<.5
    coin=rand(1,2);
    B=[coin];
    toss=1+tossr;
    A=[A;B];
    C=[toss];
end
fprintf('Number of toss to obtain head  %.0f \n',toss)
end

如何制作所有折腾频率的向量?

我想制作一个所有折腾的频率表

【问题讨论】:

  • 如果你需要投掷 500 次,为什么不直接生成一个大小为 500 的随机向量?

标签: matlab


【解决方案1】:

使用randi的解决方案

clearvars
toss=0;

for i=1:500
    if randi(2)==1 %1 for tails, 2 for heads
        toss=toss+1;
    else
        FreqToss(i)=toss;
        fprintf('Number of toss to obtain head  %.0f \n',toss)
        toss=0;
    end
end

【讨论】:

    【解决方案2】:

    检查这是一个更简单的解决方案:

    clear; clc; close;
    toss=0;
    Tossvector=[];
    
    %heads>=0.5 %tails<0.5
    for i=1:500
        coin=rand();     
        if coin <.5
            toss=toss+1;
            Tossvector=horzcat(Tossvector,toss);
        end
        if coin >.5
            fprintf('Number of toss to obtain head  %.0f \n',toss)
            toss=0;
        end
    end
    

    【讨论】:

      猜你喜欢
      • 2012-12-02
      • 2012-06-24
      • 2014-05-25
      • 2018-07-08
      • 1970-01-01
      • 2019-10-28
      • 2018-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多