[go: up one dir, main page]

login
Square array T(n,k) = k*((1+2*n)*k - 1)/2; n>=0, k>=0, read by antidiagonals upwards.
1

%I #54 Feb 22 2024 02:03:10

%S 0,0,0,0,1,1,0,2,5,3,0,3,9,12,6,0,4,13,21,22,10,0,5,17,30,38,35,15,0,

%T 6,21,39,54,60,51,21,0,7,25,48,70,85,87,70,28,0,8,29,57,86,110,123,

%U 119,92,36,0,9,33,66,102,135,159,168,156,117,45

%N Square array T(n,k) = k*((1+2*n)*k - 1)/2; n>=0, k>=0, read by antidiagonals upwards.

%C The main diagonal is A002414.

%C The first upper diagonal is A160378(n+1).

%C The antidiagonals sums are A034827(n+2).

%C b(n) = (A034827(n+3) = 0, 2, 10, 30, 70, ...) - (A002414(n) = 0, 1, 9, 30, 70, ...) = 0, 1, 1, 0, 0, 5, 21, 56, ... .

%C b(n+2) = A299120(n). b(n+4) = A033275(n). b(n+4) - b(n) = A002492(n).

%F Take successively sequences n*(n-1)/2, n*(3*n-1)/2, n*(5*n-1)/2, ... listed in the EXAMPLE section.

%F G.f.: y*(x + y)/((1 - y)^3*(1 - x)^2). - _Stefano Spezia_, Mar 06 2023

%F E.g.f.: exp(x+y)*y*(2*x + y + 2*x*y)/2. - _Stefano Spezia_, Feb 21 2024

%e The rows are

%e 0, 0, 1, 3, 6, 10, 15, 21, ... = A161680

%e 0, 1, 5, 12, 22, 35, 51, 70, ... = A000326

%e 0, 2, 9, 21, 38, 60, 87, 119, ... = A005476

%e 0, 3, 13, 30, 54, 85, 123, 168, ... = A022264

%e 0, 4, 17, 39, 70, 110, 159, 217, ... = A022266

%e ... .

%e Columns: A000004, A001477, A016813, A017197=3*A016777, 2*A017101, 5*A016873, 3*A017581, 7*A017017, ... (coefficients from A026741).

%e Difference between two consecutive rows: A000290. Hence A143844.

%e This square array read by antidiagonals leads to the triangle

%e 0

%e 0 0

%e 0 1 1

%e 0 2 5 3

%e 0 3 9 12 6

%e 0 4 13 21 22 10

%e 0 5 17 30 38 35 15

%e ... .

%t T[n_, k_] := k*((2*n + 1)*k - 1)/2; Table[T[n - k, k], {n, 0, 10}, {k, 0, n}] // Flatten (* _Amiram Eldar_, Mar 05 2023 *)

%o (PARI) a(n) = { my(row = (sqrtint(8*n+1)-1)\2, column = n - binomial(row + 1, 2)); binomial(column, 2) + column^2 * (row - column) } \\ _David A. Corneth_, Mar 05 2023

%o (Python) # Seen as a triangle:

%o from functools import cache

%o @cache

%o def Trow(n: int) -> list[int]:

%o if n == 0: return [0]

%o r = Trow(n - 1)

%o return [r[k] + k * k if k < n else r[n - 1] + n - 1 for k in range(n + 1)]

%o for n in range(7): print(Trow(n)) # _Peter Luschny_, Mar 05 2023

%Y Cf. A000004, A000290, A000326, A001477, A002414, A005476, A016777, A016813, A016873, A017017, A017101, A017197, A017581, A022264, A022266, A026741, A034827, A160378, A161680, A360962.

%Y Cf. A002492, A033275, A143844, A299120.

%K nonn,tabl

%O 0,8

%A _Paul Curtz_, Mar 05 2023