【问题标题】:Simulating a Volleyball game in MATLAB在 MATLAB 中模拟排球比赛
【发布时间】:2016-08-20 18:26:00
【问题描述】:

我想模拟以下内容:
我们有两个排球队:
‍‍‍‍‍‍ ‍‍L =本地人 ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍ ‍‍ ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ V =客人们

假设L有18分,p1=0.6的概率下一个得分,V有20分,p2=0.54的概率下一个得分。

到目前为止我尝试过的是这段代码:-

% Simulating a volleyball game

p1 = 0.6;  % Introducing the probabilities of both teams
p2 = 0.54;
n=25;      % The maximum number of points in a set

L=18;
V=20;

t1=(rand<p1);
t2=(rand<p2);

while n-L>0 || n-V>0

if t1==1
    L=L+1;
elseif t2==1
    V=V+1;

end
end 
disp([L V])

问题是它似乎没有尽头,当一支球队得到 25 分时,我想不出办法阻止比赛。另一个问题是我无法检查循环是否正常工作,因为程序没有显示任何内容。我认为程序没有计算正确的 t1t2 ,因为它使用相同的随机数。
如何解决这些问题?

编辑:
我也想运行这个10000次,计算每支球队的胜率!

【问题讨论】:

    标签: matlab simulation


    【解决方案1】:

    首先,循环的条件不正确。其次,在每次迭代中,t1t2 的值都会不断增加。第三,当t1t2 都为零时,没有什么可以应对这种情况,循环将始终保持为真。第四,假设概率是错误的,因为概率之和必须等于1。

    修改后的代码如下:

    % The probabilities are incorrect but I'm leaving them as it is
    p1 = 0.6;   
    p2 = 0.54;
    n = 25;     % The maximum number of points in a set
    
    Result=zeros(1,1000);       % Pre-allocation
    
    for k=1:1000
        L=18;
        V=20;
    
        while n-L>0 & n-V>0     % Notice the condition
            t1 = (rand<p1);
            t2 = (rand<p2);
    
            if t1==1
                L=L+1;
            elseif t2==1
                V=V+1;
            end
        end
        Result(k)=L>V ;         % Storing L's victories as 1 and V's victories as 0
    end
    
    Win_Percent_L = length(find(Result))/1000
    Win_Percent_V = 1-Win_Percent_L
    

    【讨论】:

    • 对 :) 我怎样才能对这个游戏进行更多的模拟(我的意思是复制 10000 次)?
    • jajajaa 是的,jajaja 对 :) 请稍等 :)
    • @Sadar_Usama 如果我想知道每支球队的比赛百分比,我必须将 V 或 L 获得 25 分的所有场合相加,然后除以 10000,但我该如何计算呢?跨度>
    • 对,对不起,但我认为这不值得,但我所做的是以下 if L==n L1=[L];如果 V==n V1=[V] 则结束;结束,但我认为它不起作用
    • @Sadar_Usama 为什么? jjajaja 我知道我做错了,但你能帮帮我吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    • 2022-12-19
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    相关资源
    最近更新 更多