例 在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏.为躲避我方打击,敌方对其阵地进行了伪装并经常变换射击地点.
经过长期观察发现,我方指挥所对敌方目标的指示有50%是准确的,而我方火力单位,在指示正确时,有1/3的射击效果能毁伤敌人一门火炮,有1/6的射击效果能全部毁伤敌人火炮.
现在希望能用某种方式把我方将要对敌人实施的20次打击结果显现出来,确定有效射击的比率及毁伤敌方火炮的平均值。
使用蒙特卡洛方法模拟50次打击结果:
function [out1 out2 out3 out4]=Msc(N)
% N开炮次数
% out1射中概率
% out2平均每次击中次数
% out3击中敌人一门火炮的射击总数
% out4击中敌人2门火炮的射击总数
k1=0;
k2=0;
k3=0;
for i=1:N
x0=randperm(2)-1;
y0=x0(1);
if y0==1
fprintf('第%d次:指示正确||',i);
x1=randperm(6);
y1=x1(1);
if y1==1|y1==2|y1==3
fprintf('第%d次:击中0炮||',i);
k1=k1+1;
elseif y1==4|y1==5
fp