它大部分工作直到for循环结束但是我得到一个错误,不确定如何修复或者它的全部错误。
问题:
南佛罗里达大学的数学系已经忘记了pi的价值,他们希望你为他们计算它。假设在正方形内有一个四分之一圆,边长为1x1。然后圆的半径是1.圆的面积是pir2。如果r = 1,则该区域是pi,并且四分之一圆的面积是pi / 4。使用从1开始的for循环并从键盘输入的数字结束,在方块中添加随机点(使用MATLAB函数rand()获取点)。如果一个点落在圆圈内,那么它就是一个点击,否则就是一个未命中。圆(pi)的近似面积是(命中)/(总点数)* 4.
我的尝试:
clear;clc
numP=input('Enter the number of points to test: ');
randNums=[rand(1,numP);rand(1,numP)]'
row=0;
hits=0;
total=0;
for i=1:numP
while i<=numP
dist=sqrt((randNums(row+1))^2 + (randNums(row+(numP+1))^2))
if dist <= 1
hits=hits+1
end
total=total+1
row=row+1
end
end
approx=(hits/total)*4
答案 0 :(得分:0)
您需要做的就是删除while循环。
我也摆脱了行变量,因为你不需要它。
clear;clc
numP=input('Enter the number of points to test: ');
randNums=[rand(1,numP);rand(1,numP)];
hits=0;
total=0;
for i=1:numP
dist=sqrt((randNums(i))^2 + (randNums(i+numP)^2));
if dist <= 1
hits=hits+1;
end
total=total+1;
end
approx=(hits/total)*4
答案 1 :(得分:0)
{{1}}
pi_c为您提供计算的pi值