login
a(n) = f(n,n) where f(m,n) = max(m,n) if m < 2 or n < 2; f(m,n) = f(m-1,n-1) + f(m-1,n-2) + f(m-2,n-1) otherwise. Diagonal of A342859.
2

%I #53 Apr 22 2021 22:10:12

%S 0,1,3,7,17,39,91,211,487,1123,2589,5963,13725,31583,72661,167131,

%T 384377,883951,2032723,4674299,10748631,24716955,56839003,130710843,

%U 300603331,691345931,1590077703,3657329539,8412668791,19352107787,44519281727,102422137915

%N a(n) = f(n,n) where f(m,n) = max(m,n) if m < 2 or n < 2; f(m,n) = f(m-1,n-1) + f(m-1,n-2) + f(m-2,n-1) otherwise. Diagonal of A342859.

%C It appears that a(n+1)/a(n) tends to 2.314....

%F a(n) = A342859(n, n).

%t B[m_,n_] := B[m,n] = Which[m < n, B[n,m], n < 2 || m < 2, Max[m, n],True,

%t B[m-1, n-1] + B[m-1,n-2] + B[m-2,n-1]]; Table[B[m,m],{m, 1, 55}]

%o (PARI) A342600(n) = A342859(n,n); \\ (Also uses code from A342859.) - _Antti Karttunen_, Mar 28 2021

%o (Python)

%o from functools import lru_cache

%o @lru_cache(maxsize=None)

%o def A342600(n,m=None): # A342600(n) = A342600(n,n)

%o if m == None: m = n

%o return max(m,n) if m < 2 or n < 2 else A342600(n-1,m-1)+A342600(n-1,m-2)+A342600(n-2,m-1)

%o for i in range(32): print(i,A342600(i)) # _Chai Wah Wu_, Apr 22 2021

%Y Main diagonal of A342859. Cf. A001850.

%K nonn

%O 0,3

%A _José María Grau Ribas_, Mar 25 2021