这是一个家庭作业问题。我只是FYI的全新
这就是问题:
R确实有一个内置常量pi
。在这里,我们将使用随机数来估计值
π。创建一个带有参数approx.pi()
的函数N
。在这个函数里面,编码
以下步骤:
j
设为等于0. i
的for循环,重复N
次。 x
和y
使用runif()
。 x^2 + y^2 < 1
,则在j
添加一个。 for
循环。 4×j/N
这是我的代码:
approx.pi <- function(N) {
j <- 0
for (i in N) {
x <- runif(1,-1,1)
y <- runif(1,-1,1)
if (x^2+y^2< 1) {
j=j+1
}
}
return(4*j/N)
}
approx.pi(N=5)
我收到了一些数字值,但他们不在pi附近有人可以帮忙吗?谢谢。
答案 0 :(得分:1)
此代码仅运行1个值i = N。
for (i in N) {}
您需要更改为
for (i in 1:N){}
我尝试过编辑代码并获得输出
approx.pi <- function(N) {
j <- 0
for (i in 1:N) {
x <- runif(1,-1,1)
y <- runif(1,-1,1)
if (x^2+y^2< 1) {
j=j+1
}
}
return(4*j/N)
}
这是我的输出。 (你使用5太小了。)
> approx.pi(5000)
[1] 3.188
> approx.pi(5000)
[1] 3.1488
> approx.pi(5000)
[1] 3.1344
> approx.pi(5000)
[1] 3.1672
> approx.pi(5000)
[1] 3.1632
> approx.pi(5000)
[1] 3.1152