这是问题:
我的代码如下:
N=10000;
a=2;
b=3;
c=4;
d=6;
p=(b+c+d)/2;
r=(b*c*d)/(4*sqrt(p*(p-b)*(p-c)*(p-d)));
num=0;
for i=1:N
x=2*pi*rand(); %
h=a*rand(); %
x1=r*cos(x);
y1=r*sin(x)+h;
x2=r*cos(x+2*pi/3);
y2=r*sin(x+2*pi/3)+h;
x3=r*cos(x+4*pi/3);
y3=r*sin(x+4*pi/3)+h;
y=[y1,y2,y3];
pos=(y<0)|(y>a); % pos用于判断三角形是否存在顶点位于直线y=0的下方,
% 或者位于直线y=a的上方
if sum(pos)>0.5 % 如果此条件成立,则意味着三角形存在顶点位于直线y=0的
% 下方,或者位于直线y=a的上方,即该三角形与平行线相交
num=num+1;
end;
end;
p=num/N
我算出来的概率一直等于1,正确的程序应该怎么写?