num=randi(100,[1 1])
i=0
while (i<3)
elseif(a>num)
disp 'High'
i=i+1
else
end
if (i==3)
disp 'You lose'
end
#include <stdio.h>
int main()
printf("enter the integer you guess:")
scanf("%d", &t)
if (data == t)
{
printf("the data is:%d\n", data)
break
}
else if(data >t)
else
count++
}while(1)
if (count <= 3)
else if(count <= 7)
return 0
编程环境
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强, *** 作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。
模拟打靶的小游戏
%靶的制作和打靶得分
clear %清除变量
n=10 %环的个数
th=(0:360)*pi/180%角度向量
figure %创建图形窗口
axis equal %使坐标间隔相等
hold on%保持图像
cc='gcmyrbgcmy' %颜色字符(1)
for i=1:n %按环数循环(2)
x=(n+1-i)*cos(th)%横坐标
y=(n+1-i)*sin(th)%纵坐标
fill(x,y,cc(i))%填色(3)
end%结束循环
s=0 %总分清零
ht1=text(-n,n-1,'','FontSize',16)%取文本句柄(4)
ht2=text(-n,-n+1,'','FontSize',16) %取文本句柄(4)
for i=1:n %按次数循环
[x,y]=ginput(1) %获取坐标(5)
plot(x,y,'k.','MarkerSize',20) %画点
set(ht1,'String',['次数:',num2str(i)])%设置次数字符串(6)
r=sqrt(x^2+y^2) %求射击点靶心距离
m=n-floor(r) %计分(7)
if m>0 %如果分数大于零(8)
text(x,y,num2str(m),'FontSize',16)%显示分数(9)
s=s+m%累加分数
set(ht2,'String',['总分:',num2str(s)])%设置总分字符串(10)
end%结束条件
end%结束循环
MATLAB 程序如下,最终收敛到0.508左右
NumIterations = 10000 %实验次数
NumWins = 0 %已经赢了的次数
NumWinsVec = zeros(1, NumIterations)
for ii = 1:NumIterations
points = sum(randi(6, 1, 2)) %掷2颗骰子,算总数
switch points
case {3, 11} %如果是3, 11点
NumWins = NumWins + 1 %赢的次数加1
case {4, 5, 6, 8, 9, 10} %如果是4,5,6,8,9,10点
flag = false %初始化flag,flag==true时本轮结束
while ~flag
newPoints = sum(randi(6, 1, 2)) %掷2颗骰子,算总数
switch newPoints
case 7 %如果新的点数是7
NumWins = NumWins + 1 %赢的次数加1
flag = true %本轮结束
case points %如果新的点数等于本轮第一次的点数
flag = true %本轮结束(赢的次数不变)
end
end
end
NumWinsVec(ii) = NumWins %记下本轮结束后总共赢的次数
end
WinPrecentage = NumWinsVec ./ (1:NumIterations) %全部结束后算概率
figure plot(1:NumIterations, WinPrecentage) %画图
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)