Pascal的三角形环产生不必要的NaN

时间:2019-02-15 05:43:32

标签: r for-loop

怎么了?

pascals_triangle <- function(x) {
  for (i in 1:x) {
    holder <- c()
    n <- i - 1
    for (j in 1:x) {
      r <- j - 1
      nCrlessone <- factorial(n)/(factorial(n-r)*factorial(r))
      holder <- c(holder, nCrlessone)
    }
  print(holder)
  }
}



> pascals_triangle(1)
 [1] 1
> pascals_triangle(10)
 [1]   1 NaN NaN NaN NaN NaN NaN NaN NaN NaN
 [1]   1   1 NaN NaN NaN NaN NaN NaN NaN NaN
 [1]   1   2   1 NaN NaN NaN NaN NaN NaN NaN
 [1]   1   3   3   1 NaN NaN NaN NaN NaN NaN
 [1]   1   4   6   4   1 NaN NaN NaN NaN NaN
 [1]   1   5  10  10   5   1 NaN NaN NaN NaN
 [1]   1   6  15  20  15   6   1 NaN NaN NaN
 [1]   1   7  21  35  35  21   7   1 NaN NaN
 [1]   1   8  28  56  70  56  28   8   1 NaN
 [1]   1   9  36  84 126 126  84  36   9   1

请参见上面的结果,在第一次试用时不打印NaN。 请参见上面的结果,在第一次试用时不打印NaN。 请参阅上面的结果,在第一次试用时不打印NaN。

1 个答案:

答案 0 :(得分:0)

如果要避免计算,存储然后显示NaN值,则可以将j中的循环范围更改为从1:i而不是{{ 1}}:

1:x

此更改可确保您仅计算下子对角线。