How would you program Pascal's triangle in R?

后端 未结 2 1141
轻奢々
轻奢々 2020-12-21 04:09

I am reading, on my own (not for HW) about programming, and one exercise involved programming Pascal\'s triangle in R. My first idea was to make a list and then append thin

相关标签:
2条回答
  • 2020-12-21 04:39

    using a property of the Pascal triangle:

    x <- 1
    print(x)
    for (i in 1:10) { x <- c(0, x) + c(x, 0); print(x) }
    

    I suppose this code is very fast.

    0 讨论(0)
  • 2020-12-21 04:51

    There is one solution on Rosetta Code:

    pascalTriangle <- function(h) {
      for(i in 0:(h-1)) {
        s <- ""
        for(k in 0:(h-i)) s <- paste(s, "  ", sep="")
        for(j in 0:i) {
          s <- paste(s, sprintf("%3d ", choose(i, j)), sep="")
        }
        print(s)
      }
    }
    

    I would store this in a list if I was developing it myself, since that is the most natural data structure to handle variable length rows. But you really would need to clarify a use case before making that decision. Are you intending on doing analysis on the data after it has been generated?

    Edit:

    Here is the Rosetta solution rewritten with less looping, and storing the results as a list:

    pascalTriangle <- function(h) {
      lapply(0:h, function(i) choose(i, 0:i))
    }
    
    0 讨论(0)
提交回复
热议问题