如何用r语言写repeat语句

Python018

如何用r语言写repeat语句,第1张

一、循环和向量化

1、控制结构

(1)条件语句

if(条件) 表达式1 else 表达式2

(2)循环(loops)

for :for(变量 in 变量) 表达式

while while(条件)表达式

repeat repeat 表达式

三者略有区别:若知道终止条件(循环次数)就用for循环,若无法知道运行次数,则用while和repeat循环,repeat循环利用循环体的break语句跳出循环

最简单但计算量最大的是泰勒公式:e=1+1/1!+1/2!+1/3!+1/4!+...

下面是求e的R语言函数:

e_fun <- function(n) {

  etemp <- 1

  ni <- 1L

  for (i in 1:n) {

    etemp <- etemp + 1 / ni

    ni <- ni * (i + 1)

  }

  return(etemp)

}

不过你题目中要求的是求到精度为0.00001就停止,所以可以采用repeat循环:

i <- 1L

ni <- 1L

etemp <- 1

repeat {

  etemp1 <- etemp

  etemp <- etemp + 1 / ni

  ni <- ni * (i + 1)

  i <- i + 1

  if (etemp - etemp1 < 0.00001) break

}

i

etemp

在最后可以看到,求到i=10时,精度就已经达到要求了。