我正在嘗試在 R 中計算此產品 ( https://en.wikipedia.org/wiki/Wallis_product ),但我的代碼不起作用。我哪里錯了?
W <- function(n) {
for (i in 1:n) {
r <- (2*i/(2*i-1)*2*i/(2*i 1))
}
print(r*2)
}
W(10)
W(50)
pi
uj5u.com熱心網友回復:
你需要做r一個正在運行的產品。
Wallis <- function(n) {
r <- 1
for (i in 1:n) {
r <- r * (2*i/(2*i-1)*2*i/(2*i 1))
}
print(r*2)
}
Wallis(500)
#[1] 3.140024
uj5u.com熱心網友回復:
您可以避免使用for-loop 并使用矢量化:
wallis <- function(n) {
i <- seq_len(n)
# Return:
2 * prod(2 * i / (2 * i - 1) * 2 * i / (2 * i 1))
}
wallis(500)
#> [1] 3.140024
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/343007.html
標籤:r
上一篇:將日期從原點轉換為POSIXct
