要是,选择F4,F5的情况为百分之90,应该怎么改。
你好,代码供参考:
clc;clear
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};
n = 1000; % 每次1000个点
x = zeros(n,1);
y = zeros(n,1);
count = 0;
% 随机生成1000个点
while count<=n
x0 = sqrt(5)*randn(1);
y0 = sqrt(5)*randn(1);
if(x0^2+y0^2<5)
r = rand(1);
if(abs(x0)<2 && abs(y0)<1 && (~F{4}(x0,y0) && ~F5(x0,y0)) && r<0.9)
count = count + 1;
x(count) = x0;
y(count) = y0;
elseif(abs(x0)<2 && abs(y0)<1 && ~(~F{4}(x0,y0) && ~F5(x0,y0)) && r>0.9)
count = count + 1;
x(count) = x0;
y(count) = y0;
end
end
end
figure(1);clf
plot(x,y,'r.'); hold on; axis equal;
q = ~ F{4}(x,y) & ~ F{5}(x,y);% 不落在深灰色区域
plot(x(~q),y(~q),'b.')
Probability = sum(q)/n;
disp('既在F4又在F5概率')
disp(Probability)