1个回答
展开全部
!简程
!前略
k = 0
do i = 1, 100000000
call random_number(x)
call random_number(y)
if ((x + y) .le. 1.0) then
k = k + 1
end if
enddo
p = k * 1.0 / N * 4
print *, p
end
思路:假设我们有一个边长为1的正方形,这个正方形必然有一个内切圆,它的直径等于正方形的边长,半径为0.5 。正方形的面积是1,其内切圆的面积为 PI*(0.5)^2 。假设只考虑第一象限,我们随机生成很多点,考虑这个点落在圆里的概率,这个概率趋向于几何概率,也就是第一象限圆的面积和正方形面积的比值。随机产生的点越多,最后求得的PI值越精确
!前略
k = 0
do i = 1, 100000000
call random_number(x)
call random_number(y)
if ((x + y) .le. 1.0) then
k = k + 1
end if
enddo
p = k * 1.0 / N * 4
print *, p
end
思路:假设我们有一个边长为1的正方形,这个正方形必然有一个内切圆,它的直径等于正方形的边长,半径为0.5 。正方形的面积是1,其内切圆的面积为 PI*(0.5)^2 。假设只考虑第一象限,我们随机生成很多点,考虑这个点落在圆里的概率,这个概率趋向于几何概率,也就是第一象限圆的面积和正方形面积的比值。随机产生的点越多,最后求得的PI值越精确
追问
可能我不是太专业 有没有流程图 我不知道是不是叫这个 就是图示思路
追答
几何题没什么流程图
在直角坐标系放一个正方形,有一个内切圆,在正方形的范围内随机产生坐标(x,y),计算(x,y)到圆心的距离,如果大于半径便不在圆内,小于半径就在圆内
根据几何概率,点产生在圆内的概率等于圆的面积除以正方形的面积,设k为n个点出现在圆内的次数,k/n = pi * r**2 / (2r)**2 => 4k/n = pi,用这个来估计pi,即p = k * 1.0 / 100000000 * 4
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询