cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A349904 Inverse Euler transform of the tribonacci numbers A000073.

Original entry on oeis.org

0, 0, 1, 1, 2, 3, 6, 10, 18, 31, 56, 96, 172, 299, 530, 929, 1646, 2893, 5126, 9044, 16028, 28362, 50328, 89249, 158598, 281830, 501538, 892857, 1591282, 2837467, 5064334, 9044023, 16163946, 28906213, 51729844, 92628401, 165967884, 297541263, 533731692, 957921314
Offset: 1

Views

Author

Peter Luschny, Dec 05 2021

Keywords

Crossrefs

Column k=2 of A349802.
Cf. A000073, A057597 (tribonacci numbers for n <= 0), A006206 and A060280.

Programs

  • Maple
    read transforms;  # https://oeis.org/transforms.txt
    arow := len -> EULERi([seq(A000073(n), n = 0..len)]): arow(39);
    # second Maple program:
    t:= n-> (<<0|1|0>, <0|0|1>, <1|1|1>>^n)[1, 3]:
    b:= proc(n, i) option remember; `if`(n=0, 1, `if`(i<1, 0,
          add(binomial(a(i)+j-1, j)*b(n-i*j, i-1), j=0..n/i)))
        end:
    a:= proc(n) option remember; t(n-1)-b(n, n-1) end:
    seq(a(n), n=1..40);  # Alois P. Heinz, Dec 05 2021
  • Mathematica
    (* EulerInvTransform is defined in A022562. *)
    EulerInvTransform[LinearRecurrence[{1, 1, 1}, {0, 0, 1}, 40]]
  • PARI
    InvEulerT(v)={my(p=log(1+x*Ser(v))); dirdiv(vector(#v,n,polcoef(p,n)), vector(#v,n,1/n))}
    seq(n) = InvEulerT(Vec(x^2/(1 - x - x^2 - x^3) + O(x^n), -n)) \\ Andrew Howroyd, Dec 05 2021
  • Python
    # After the Maple program of Alois P. Heinz.
    from functools import cache
    from math import comb
    def binomial(n, k):
        if n == -1: return 1
        return comb(n, k)
    @cache
    def A000073(n):
        if n <= 1: return 0
        if n == 2: return 1
        return A000073(n-1) + A000073(n-2) + A000073(n-3)
    @cache
    def b(n, i):
        if n == 0: return 1
        if i <  1: return 0
        return sum(binomial(a(i) + j - 1, j) *
                   b(n - i * j, i - 1) for j in range(1 + n // i))
    @cache
    def a(n): return (A000073(n - 1) - b(n, n - 1))
    print([a(n) for n in range(1, 41)])
    
  • SageMath
    def euler_invtrans(A) :
        L = []; M = []
        for i in range(len(A)) :
            s = (i+1)*A[i] - sum(L[j-1]*A[i-j] for j in (1..i))
            L.append(s)
            s = sum(moebius((i+1)/d)*L[d-1] for d in divisors(i+1))
            M.append(s/(i + 1))
        return M
    @cached_function
    def a(n): return a(n-1) + a(n-2) + a(n-3) if n > 2 else [0,0,1][n]
    print(euler_invtrans([a(n) for n in range(40)]))