A099961 Triangle read by rows: Each row is constructed by forming the partial sums of the previous row, reading from the right and at every third row repeating the final term.
1, 1, 1, 1, 1, 2, 2, 3, 3, 5, 5, 5, 10, 13, 13, 23, 28, 28, 51, 64, 64, 64, 128, 179, 207, 207, 386, 514, 578, 578, 1092, 1478, 1685, 1685, 1685, 3370, 4848, 5940, 6518, 6518, 12458, 17306, 20676, 22361, 22361, 43037, 60343, 72801, 79319, 79319, 79319
Offset: 0
Examples
Triangle begins 1; 1, 1, 1; 1, 2, 2, 3, 3, 5, 5; 5, 10, 13, 13, 23, 28, 28, 51, 64, 64;
Links
- Reinhard Zumkeller, Rows n=0..120 of triangle, flattened
Crossrefs
Programs
-
Haskell
a099961 n k = a099961_tabl !! n !! k a099961_row n = a099961_tabl !! n a099961_tabl = map snd $ iterate f (0,[1]) where f (s,xs) = (s+1, if s `mod` 3 == 1 then zs ++ [last zs] else zs) where zs = scanl1 (+) (reverse xs) -- Reinhard Zumkeller, Dec 28 2011
-
Maple
with(linalg):rev:=proc(a) local n, p; n:=vectdim(a): p:=i->a[n+1-i]: vector(n,p) end: ps:=proc(a) local n, q; n:=vectdim(a): q:=i->sum(a[j],j=1..i): vector(n,q) end: pss:=proc(a) local n, q; n:=vectdim(a): q:=proc(i) if i<=n then sum(a[j],j=1..i) else sum(a[j],j=1..n) fi end: vector(n+1,q) end: R[0]:=vector(1,1): for n from 1 to 19 do if n mod 3 = 0 or n mod 3 = 1 then R[n]:=ps(rev(R[n-1])) else R[n]:=pss(rev(R[n-1])) fi od: for n from 0 to 19 do evalm(R[n]) od; # program yields the successive rows # Emeric Deutsch, Nov 16 2004
-
Mathematica
r[0] = {1}; r[n_] := r[n] = Join[ a = Accumulate[ Reverse[r[n-1]]], If[Mod[n, 3] == 2, {Last[a]}, {}]]; Flatten[ Table[r[n], {n, 0, 15}]](* Jean-François Alcover, Mar 13 2012 *)
Extensions
More terms from Emeric Deutsch, Nov 16 2004
Comments