As the Fibonacci sequence expands to the Fibonacci n-step number sequences; We similarly expand the Padovan sequence to form these Padovan n-step number sequences.

The Fibonacci-like sequences can be defined like this:

   For n == 2:
       start:      1, 1
       Recurrence: R(n, x) = R(n, x-1) + R(n, x-2); for n == 2
   For n == N:
       start:      First N terms of R(N-1, x)
       Recurrence: R(N, x) = sum(R(N, x-1) + R(N, x-2) + ... R(N, x-N))

For this task we similarly define terms of the first 2..n-step Padovan sequences as:

   For n == 2:
       start:      1, 1, 1
       Recurrence: R(n, x) = R(n, x-2) + R(n, x-3); for n == 2
   For n == N:
       start:      First N + 1 terms of R(N-1, x)
       Recurrence: R(N, x) = sum(R(N, x-2) + R(N, x-3) + ... R(N, x-N-1))

The initial values of the sequences are:


 Padovan 



n


{\displaystyle n}

-step sequences


 



n


{\displaystyle n}

 
 Values 
 OEIS Entry


 2 
 1,1,1,2,2,3,4,5,7,9,12,16,21,28,37, ... 
 A134816: 'Padovan's spiral numbers'


 3 
 1,1,1,2,3,4,6,9,13,19,28,41,60,88,129, ... 
 A000930: 'Narayana's cows sequence'


 4 
 1,1,1,2,3,5,7,11,17,26,40,61,94,144,221, ... 
 A072465: 'A Fibonacci-like model in which each pair of rabbits dies after the birth of their 4th litter'


 5 
 1,1,1,2,3,5,8,12,19,30,47,74,116,182,286, ... 
 A060961: 'Number of compositions (ordered partitions) of n into 1's, 3's and 5's'


 6 
 1,1,1,2,3,5,8,13,20,32,51,81,129,205,326, ... 
 <not found>


 7 
 1,1,1,2,3,5,8,13,21,33,53,85,136,218,349, ... 
 A117760: 'Expansion of 1/(1 - x - x^3 - x^5 - x^7)'


 8 
 1,1,1,2,3,5,8,13,21,34,54,87,140,225,362, ... 
 <not found>




Task

 Write a function to generate the first 



t


{\displaystyle t}

 terms, of the first 2..max_n Padovan 



n


{\displaystyle n}

-step number sequences as defined above.
 Use this to print and show here at least the first t=15 values of the first 2..8 



n


{\displaystyle n}

-step sequences.
 (The OEIS column in the table above should be omitted).


/*REXX program computes and shows the Padovan sequences for  M  steps  for  N  numbers. */
parse arg n m .                                  /*obtain optional arguments from the CL*/
if  n=='' |  n==","  then  n= 15                 /*Not specified?  Then use the default.*/
if  m=='' |  m==","  then  m=  8                 /* "      "         "   "   "     "    */
w.= 1                                            /*W.c:  the maximum width of a column. */
        do #=2  for m-1
        @.= 0;    @.0= 1;    @.1= 1;    @.2= 1   /*initialize 3 terms of the Padovan seq*/
        $= @.0                                   /*initials the list with the zeroth #. */
               do k=2  for  n-1;      z= pd(k-1)
               w.k= max(w.k, length(z));  $= $ z /*find maximum width for a specific col*/
               end   /*k*/
        $.#= $                                   /*save each unaligned line for later.  */
        end          /*#*/
oW= 1
        do col=1  for n;  oW= oW + w.col + 1     /*add up the width of each column.     */
        end   /*col*/
                    iW= length(m) + 2;       pad= left('', 20*(n<21))    /*maybe indent.*/
say pad center('M', iW, " ")"│"center('first ' n " Padovan sequence with step  M", oW)
say pad center('',  iW, "─")"┼"center('',  oW,  "─")
 
        do out=2  for m-1;   $=                  /*align columnar elements for outputs. */
             do j=1  for n;  $= $ right(word($.out, j),  w.j)      /*align the columns. */
             end     /*j*/
        say pad center(out,length(m)+2)'│'$      /*display a line of columnar elements. */
        end          /*out*/
 
say pad center('',  length(m)+2, "─")"┴"center('',  oW,  "─")
exit 0                                           /*stick a fork in it,  we're all done. */
/*──────────────────────────────────────────────────────────────────────────────────────*/
pd:    procedure expose @. #; parse arg x;  if @.x\==0  then return @.x   /*@.x defined?*/
                    do k=1  for  #;   _= x-1-k;    @.x= @.x + @._;    end;      return @.x