簡體   English   中英

如何在R中使用rep語句獲取階乘?

[英]How to get the factorial using rep statement in r?

我想用rep語句獲取階乘函數。

我嘗試! 但是失敗了!

   fact <- function(n){
      for (i in 0:n){
        while(i<n){
          rep{n*fact(n-1) if(i ==n) break}
       }
    }

謝謝您的回答。 :)

假設您的意思是replicate而不是rep這將是一個解決方案:

fact <- function(N){
  n <- N
  f <- 1
  replicate(n, {
    f <<- f*n
    n <<- n-1
    f
  })[N]
}

當然,僅將其用作練習,因為它比factorial函數的構建要慢得多。

如果您從事函數式編程,則可以使用以下基於lambda的解決方案:

N <- 10

factorial_generator <- function(){
  fac <- 1
  n <- 0
  function(){
    n <<- n+1
    fac <<- fac * n
    return(fac)
  }
}

my_factorial <- factorial_generator()

replicate(N, my_factorial())[N]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM