📄 drop_process.m
字号:
clear,clf,m=100;n=5;y0=2; %设置参数
ballnum=zeros(1,n+1); %记录球落入格子的频率
p=0.5;q=1-0.5;
for i=n+1:-1:1 %设置钉子的位置
x(i,1)=0.5*(n-i+1);y(i,1)=(n-i+1)+y0;
for j=2:i
x(i,j)=x(i,1)+(j-1)*1;y(i,j)=y(i,1);
end
end
mm=moviein(m); %动画开始,模拟小球下落轨迹
for i=1:m %模拟扔球m次
s=rand(1,n);
xi=x(1,1);yi=y(1,1);k=1;l=1; %小球遇到第一个钉子
for j=1:n
plot(x(1:n,:),y(1:n,:),'o',x(n+1,:),y(n+1,:),'-'),axis([-2 n+2 0 y0+n+1]),hold on %画钉子的位置
k=k+1; %小球下落一格
if s(j)>p
l=l+0; %小球向左移
else
l=l+1; %小球向右移
end
xt=x(k,l);yt=y(k,l); %小球下落点的坐标
h=plot([xi,xt],[yi,yt]);axis([-2 n+2 0 y0+n+1]) %画小球运动轨迹
xi=xt;yi=yt;
end
ballnum(l)=ballnum(l)+1; %统计落入各个格子的球数
ballnum1=3*ballnum./m;
bar([0:n],ballnum1),axis([-2 n+2 0 y0+n+1])%画各格子的频率图
mm(i)=getframe; %存储动画数据
hold off
end
movie(mm,1,2)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -