[英]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.