Pet*_*ica 4 math r combinatorics
我正在阅读,我自己(不是HW)关于编程,一个练习涉及在R中编写Pascal的三角形.我的第一个想法是制作一个列表,然后将其添加到其中,但这并不能很好地工作.然后我想到了从一个向量开始,并在最后制作一个列表.然后我想到制作一个矩阵,并在最后制作一个列表.
不知道哪种方式可以解决这个问题.
任何提示?
谢谢
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)
}
}
Run Code Online (Sandbox Code Playgroud)
如果我自己开发它,我会将它存储在列表中,因为这是处理可变长度行的最自然的数据结构.但在做出决定之前,您确实需要澄清一个用例.您是否打算在数据生成后对数据进行分析?
编辑:
以下是使用较少循环重写的Rosetta解决方案,并将结果存储为列表:
pascalTriangle <- function(h) {
lapply(0:h, function(i) choose(i, 0:i))
}
Run Code Online (Sandbox Code Playgroud)