首页 > 解决方案 > 创建 Padovan 序列的函数

问题描述

我需要编写一个计算Padovan 序列的函数。程序必须允许输入一个表示序列长度的整数。

预期的顺序是:1、1、1、2、2、3、4、5、7、9、12、16、21、28、37、49、65、86、114、151、...

padovan <- function(n){
  p <- c(1,1,1)
  p <- c(p,p[n-2]+p[n-3])
  print(p)
}
padovan(50)

标签: r

解决方案


这是 padovan_sequence 的一个简单函数

padovan_sequence <- function(n) {
   if (n < 1) stop("Please enter a positive number")
   p <- c(1, 1, 1)
   i = 4
   while(i <= n) {
    p <- c(p, p[i-2] + p[i-3])
    i = i +1
  }
  p[1:n]
}

padovan_sequence(50)
# [1]      1      1      1      2      2      3      4      5      7      9
#[11]     12     16     21     28     37     49     65     86    114    151
#[21]    200    265    351    465    616    816   1081   1432   1897   2513
#[31]   3329   4410   5842   7739  10252  13581  17991  23833  31572  41824
#[41]  55405  73396  97229 128801 170625 226030 299426 396655 525456 696081

padovan_sequence(1)
#[1] 1
padovan_sequence(2)
#[1] 1 1
padovan_sequence(-2)
#Error in padovan_sequence(-2) : Please enter a positive number

推荐阅读