login

Reminder: The OEIS is hiring a new managing editor, and the application deadline is January 26.

Inverse Euler transform of the classical tribonacci numbers.
1

%I #4 Dec 07 2021 18:16:31

%S 0,1,1,1,3,4,8,13,23,38,68,114,201,343,600,1037,1817,3157,5543,9692,

%T 17047,29952,52828,93157,164743,291459,516679,916626,1628684,2896261,

%U 5156925,9189769,16393652,29268223,52300907,93529331,167390342,299787639,537281476

%N Inverse Euler transform of the classical tribonacci numbers.

%C The classical tribonacci numbers are defined a(n) = a(n-1) + a(n-2) + a(n-3) for n >= 3 with a(0) = 0 and a(1) = a(2) = 1.

%C See A349904 for the analogous sequence for the shifted tribonacci numbers A000073.

%t (* EulerInvTransform is defined in A022562. *)

%t EulerInvTransform[LinearRecurrence[{1, 1, 1}, {0, 1, 1}, 40]]

%o (Python) # After the Maple program of _Alois P. Heinz_ in A349904.

%o from functools import cache

%o from math import comb

%o def euler_inv_trans(a: callable, len: int):

%o @cache

%o def h(n: int, k: int):

%o if n == 0: return 1

%o if k < 1: return 0

%o bk = b(k)

%o R = range(int(bk == 0), 1 + n // k)

%o return sum(comb(bk + j - 1, j) * h(n - k * j, k - 1) for j in R)

%o @cache

%o def b(n: int): return a(n - 1) - h(n, n - 1)

%o return [b(n) for n in range(1, len)]

%o @cache

%o def tribonacci(n: int):

%o return sum(tribonacci(n - j - 1) for j in range(3)) if n >= 3 else min(n, 1)

%o print(euler_inv_trans(tribonacci, 40))

%Y Cf. A349904, A000073.

%K nonn

%O 1,5

%A _Peter Luschny_, Dec 07 2021