点会随机分布在圆里面,落n=1000个点求落在矩形内除了深灰色区域的概率,一共操作r=5次,求概率平均值,散点图表示
你好同学,我是joel,比如说矩形的长为4,宽为2,圆半径为根号5,然后矩形中心跟圆中心重合:
clc;clear
Probability = zeros(5,1);
F1 = @(x,y) abs(x)<1 & abs(y)<1;
F2 = @(x,y) (abs(x+1.5)<0.5 &abs(y-0.5)<0.5) | (abs(x+0.5)<0.5 &abs(y+0.5)<0.5);
F3 = @(x,y) (abs(x-1.5)<0.5 &abs(y-0.5)<0.5) | (abs(x-0.5)<0.5 &abs(y+0.5)<0.5);
F4 = @(x,y) (abs(x+1)<1 &abs(y+0.5)<0.5);
F5 = @(x,y) (abs(x-1)<1 &abs(y+0.5)<0.5);
F = {F1,F2,F3,F4,F5};
for i = 1:5 % 做5次实验
n = 1000; % 每次1000个点
x = zeros(n,1);
y = zeros(n,1);
count = 0;
% 随机生成1000个点
while count<=n
x0 = 2*sqrt(5)*rand(1) - sqrt(5);
y0 = 2*sqrt(5)*rand(1) - sqrt(5);
if(x0^2+y0^2<5)
count = count + 1;
x(count) = x0;
y(count) = y0;
end
end
figure(i);clf
plot(x,y,'r.'); hold on; axis equal;
q = ~ F{i}(x,y) & abs(x)<2 & abs(y)<1;% 不落在深灰色区域
plot(x(~q),y(~q),'b.')
title(['第',num2str(i),'次实验'])
Probability(i) = sum(q)/n;
end
fprintf('五次概率是:\n')
disp(Probability)
fprintf('平均概率是%f\n', mean(Probability))
结果输出(随机不唯一):
五次概率是:
0.269000000000000
0.387000000000000
0.370000000000000
0.383000000000000
0.376000000000000
平均概率是0.357000
有帮助望采纳哟