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.

A002658 a(0) = a(1) = 1; for n > 0, a(n+1) = a(n)*(a(0) + ... + a(n-1)) + a(n)*(a(n) + 1)/2.

Original entry on oeis.org

1, 1, 2, 7, 56, 2212, 2595782, 3374959180831, 5695183504489239067484387, 16217557574922386301420531277071365103168734284282
Offset: 0

Views

Author

Keywords

Comments

Number of planted trees in which every node has degree <= 3 and of height n; or products of height n when multiplication is commutative but non-associative.
Also called planted 3-trees or planted unary-binary trees.
The next term (which was incorrectly given) is in fact too large to include. See the b-file.
Comment from Marc LeBrun: Maximum possible number of distinct new values after applying a commuting operation N times to a single initial value.
Divide the natural numbers in sets of consecutive numbers, starting with {1}, each set with number of elements equal to the sum of elements of the preceding set. The sum of elements in the n-th (n>0) set gives a(n). The sets begin {1}, {2}, {3,4}, {5,6,7,8,9,10,11}, ... - Floor van Lamoen, Jan 16 2002
Consider the free algebraic system with one binary commutative (x+y) operator and one generator A. The number of elements of height n is a(n) where the height of A is zero and the height of (x+y) is one more than the maximum height of x and y. - Michael Somos, Mar 06 2012
Sergey Zimnitskiy, May 08 2013, provided an illustration for A006894 and A002658 in terms of packing circles inside circles. The following description of the figure was supplied by Allan Wilks. Label a blank page "1" and draw a black circle labeled "2". Subsequent circles are labeled "3", "4", ... . In the black circle put two red circles (numbered "3" and "4"); two because the label of the black circle is "2". Then in each of the red circles put blue circles in number equal to the labels of the red circles. So these get labeled "5", ..., "11". Then in each of the blue circles, starting with circle "5", place a set of green (say) circles, equal in number to the label of the enclosing blue circle. When all of the green circles have been drawn, they will be labeled "12", ..., "67". If you take the maximum circle label at each colored level, you get 1,2,4,11,67,2279,..., which is A006894, which itself is the partial sums of A002658. The picture is a visualization of Floor van Lamoen's comment above.
See A067338 for a variant of the integer partitioning construction, starting with {1,2}, {3,4,5}, ... - M. F. Hasler, Jan 21 2015

References

  • N. J. A. Sloane, A Handbook of Integer Sequences, Academic Press, 1973 (includes this sequence).
  • N. J. A. Sloane and Simon Plouffe, The Encyclopedia of Integer Sequences, Academic Press, 1995 (includes this sequence).

Crossrefs

Cf. A006894, A005588. First differences of A072638.

Programs

  • Haskell
    a002658 n = a002658_list !! n
    a002658_list = 1 : 1 : f [1,1] where
       f (x:xs) = y : f (y:x:xs') where y = x * sum xs + x * (x + 1) `div` 2
    -- Reinhard Zumkeller, Apr 10 2012
    
  • Maple
    s := proc(n) local i,j,ans; ans := [ 1 ]; for i to n do ans := [ op(ans),ans[ i ]*(add(j,j=ans)-ans[ i ])+ans[ i ]*(ans[ i ]+1)/2 ] od; RETURN(ans); end; t1 := s(10); A002658 := n->t1[n];
  • Mathematica
    Clear[a, b]; a[0] = a[1] = 1; b[0] = b[1] = 1; b[n_] := b[n] = b[n-1] + a[n-1]; a[n_] := a[n] = (a[n-1]+1)*a[n-1]/2 + a[n-1]*b[n-1]; Table[a[n], {n, 0, 9}] (* Jean-François Alcover, Jan 31 2013, after Frank Harary *)
    RecurrenceTable[{a[n] == a[n-1]*(a[n-1]/a[n-2]+(a[n-1]+a[n-2])/2), a[0]==1, a[1]==1},a,{n,0,10}] (* Vaclav Kotesovec, May 21 2015 *)
  • PARI
    {a(n) = local(a1, a2); if( n<2, n>=0, a2 = a(n-1); a1 = a(n-2); a2 * (a2 / a1 + (a1 + a2) / 2))} /* Michael Somos, Mar 06 2012 */
    
  • PARI
    print1(s=a=1);for(i=1,9,print1(","a*=(1-a)/2+s);s+=a) \\ M. F. Hasler, Jan 21 2015
    
  • Python
    from itertools import islice
    def agen():
        yield 1
        an = s = 1
        while True:
            yield an
            an1 = an*s + an*(an+1)//2
            an, s = an1, s+an
    print(list(islice(agen(), 10))) # Michael S. Branicky, Nov 14 2022

Formula

a(n + 1) = a(n) * (a(n) / a(n-1) + (a(n) + a(n-1)) / 2) [equation (5) on page 87 of Melzak 1968 with a() instead of his f()].
a(n) ~ 2 * c^(2^n), where c = 1.2460208329836625089431529441999359284665241772983812581752523573774108242448... . - Vaclav Kotesovec, May 21 2015
a(n) = (-1/4)*(a(n-2)^3 - 2*a(n-1)^2 - 6*a(n-1)*a(n-2) - 4*a(n-2)^2 - 8*a(n-1) + 11*a(n-2)) (see Narváez link for proof). - Boštjan Gec, Dec 03 2024

Extensions

Corrected by David Wasserman, Nov 20 2006