计算机仿真实验报告济南大学,计算机仿真建模实验报告.doc

计算机仿真建模实验报告

中南大学

计算机仿真与建模 实验报告

实 验 题 目:题3 射击命中率

班 级:

姓 名:

学 号:

指 导 老 师:

实验题目及要求

用Matlab, C/C++, Java 编小程序

题3 射击命中率

在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏.为躲避我方打击,敌方对其阵地进行了伪装并经常变换射击地点.经过长期观察发现,我方指挥所对敌方目标的指示有50%是准确的,而我方火力单位,在指示正确时,有1/3的射击效果能毁伤敌人一门火炮,有1/6的射击效果能全部消灭敌人.

现在希望能用某种方式把我方将要对敌人实施的20次打击结果显现出来,确定有效射击的比率及毁伤敌方火炮的平均值。

仿真思路

指示的正确与否

抛硬币,正面---指示错误;

反面---

摧毁敌机数目

摸球, 3白2黑,1红

白-未能摧毁敌方火炮

黑-摧毁敌方一门火炮

红-摧毁敌方两门火炮

仿真过程:

抛硬币,若为正面,表示指令错误,不能进行打击;

抛硬币,若为反面,表示指令正确,进行对敌打击,摸球若摸到白球,打击失败;

抛硬币,若为反面,表示指令正确,进行对敌打击,摸球若摸到黑球,打掉一门敌炮;

抛硬币,若为反面,表示指令正确,进行对敌打击,摸球若摸到白球,打掉两门火炮;

实验展示

实验源代码

#include

#include

#include

#include

int main()

{

int a,ar,b,br;

int t=0,e=0;

int dir[2]={1,2};

int dis[6]={1,1,2,2,2,3};

srand((unsigned)time(0));

for(int i=1;i<=20;i++)

{

printf("第%d次探测",i);

a=rand()%2;

ar=dir[a];

b=rand()%6;

br=dir[b];

if(ar==1)

{

printf("指令错误\n");

}

else

if(ar==2&&br==2)

{

printf("指令正确将\n");

printf("本次射击未能摧毁目标\n");

}

else

if(ar==2&&br==1)

{

printf("指令正确将\n ");

printf("本次射击摧毁一台敌机\n");

e=e+1;

t=t+1;

}

else

{

printf("指令正确将\n ");

printf("本次射击摧毁两台敌机\n");

e=e+1;

t=t+2;

}

printf("\n");

}

printf("有效率:%f\n",(float)e/(float)20);

printf("平均一次摧毁敌机数目:%f\n",(float)t/(float)40);

system("pause");

return 0;

}

1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值