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.

Showing 1-8 of 8 results.

A014486 List of totally balanced sequences of 2n binary digits written in base 10. Binary expansion of each term contains n 0's and n 1's and reading from left to right (the most significant to the least significant bit), the number of 0's never exceeds the number of 1's.

Original entry on oeis.org

0, 2, 10, 12, 42, 44, 50, 52, 56, 170, 172, 178, 180, 184, 202, 204, 210, 212, 216, 226, 228, 232, 240, 682, 684, 690, 692, 696, 714, 716, 722, 724, 728, 738, 740, 744, 752, 810, 812, 818, 820, 824, 842, 844, 850, 852, 856, 866, 868, 872, 880, 906, 908, 914
Offset: 0

Views

Author

Keywords

Comments

The binary Dyck-Language (A063171) in decimal representation.
These encode width 2n mountain ranges, rooted planar trees of n+1 vertices and n edges, planar planted trees with n nodes, rooted plane binary trees with n+1 leaves (2n edges, 2n+1 vertices, n internal nodes, the root included), Dyck words, binary bracketings, parenthesizations, non-crossing handshakes and partitions and many other combinatorial structures in Catalan family, enumerated by A000108.
Is Sum_{k=1..n} a(k) / n^(5/2) bounded? - Benoit Cloitre, Aug 18 2002
This list is the intersection of A061854 and A031443. - Jason Kimberley, Jan 18 2013
The sequence does start at n = 0, since in the binary interpretation of the Dyck language (e.g., as parenthesizations where "1" stands for "(" and "0" stands for ")") having a(0) = 0 will do since it would stand for the empty string where the "0"s and "1"s are balanced (hence the parentheses are balanced). - Daniel Forgues, Feb 17 2013
It appears that for n>=1 this sequence can be obtained by concatenating the terms of the irregular array whose n-th row length is A000108(n) and that is defined recursively by B(n,0) = A020988(n) and B(n,k) = B(n, k-1) + D(n, k-1) where D(x,y) = (2^(2*(A089309(B(x,y))-1))-1)*(2/3) + 2^A007814(B(x,y)). - Raúl Mario Torres Silva and Michel Marcus, May 01 2020
This encoding is related to the ranking by standard ordered tree numbers in that (1) the binary encoding of trees ordered by standard ranking is given by A358505, while (2) the standard ranking of trees ordered by binary encoding is given by A358523. - Gus Wiseman, Nov 21 2022

Examples

			a(19) = 226_10 = 11100010_2 = A063171(19) as bracket expression: ( ( ( ) ) )( ) and as a binary tree, proceeding from left to right in depth-first fashion, with 1's in binary expansion standing for internal (branching) nodes and 0's for leaves:
  0   0
   \ /
    1   0 0  (0)
     \ /   \ /
      1     1
       \   /
         1
Note that in this coding scheme the last leaf of the binary trees (here in parentheses) is implicit. This tree can be also converted to a particular S-expression in languages like Lisp, Scheme and Prolog, if we interpret its internal nodes (1's) as cons cells with each leftward leaning branch being the "car" and the rightward leaning branch the "cdr" part of the pair, with the terminal nodes (0's) being ()'s (NILs). Thus we have (cons (cons (cons () ()) ()) (cons () ())) = '( ( ( () . () ) . () ) . ( () . () ) ) = (((())) ()) i.e., the same bracket expression as above, but surrounded by extra parentheses. This mapping is performed by the Scheme function A014486->parenthesization given below.
From _Gus Wiseman_, Nov 21 2022: (Start)
The terms and corresponding ordered rooted trees begin:
    0: o
    2: (o)
   10: (oo)
   12: ((o))
   42: (ooo)
   44: (o(o))
   50: ((o)o)
   52: ((oo))
   56: (((o)))
  170: (oooo)
  172: (oo(o))
  178: (o(o)o)
  180: (o(oo))
  184: (o((o)))
(End)
		

References

  • Donald E. Knuth, The Art of Computer Programming, Vol. 4A: Combinatorial Algorithms, Part 1, Addison-Wesley, 2011, Section 7.2.1.6, pp. 443 (Algorithm P).

Crossrefs

Characteristic function: A080116. Inverse function: A080300.
The terms of binary width 2n are counted by A000108(n). Subset of A036990. Number of peaks in each mountain (number of leaves in rooted plane general trees): A057514. Number of trailing zeros in the binary expansion: A080237. First differences: A085192.
Branches of the ordered tree are counted by A057515.
Edges of the ordered tree are counted by A072643.
The Matula-Goebel number of the ordered tree is A127301.
The standard ranking of the ordered tree is A358523.
The depth of the ordered tree is A358550.
Nodes of the ordered tree are counted by A358551.

Programs

  • Maple
    # Maple procedure CatalanUnrank is adapted from the algorithm 3.24 of the CAGES book and the Scheme function CatalanUnrank from Ruskey's thesis. See the a089408.c program for the corresponding C procedures.
    CatalanSequences := proc(upto_n) local n,a,r; a := []; for n from 0 to upto_n do for r from 0 to (binomial(2*n,n)/(n+1))-1 do a := [op(a),CatalanUnrank(n,r)]; od; od; return a; end;
    CatalanUnrank := proc(n,rr) local r,x,y,lo,m,a; r := (binomial(2*n,n)/(n+1))-(rr+1); y := 0; lo := 0; a := 0; for x from 1 to 2*n do m := Mn(n,x,y+1); if(r <= lo+m-1) then y := y+1; a := 2*a + 1; else lo := lo+m; y := y-1; a := 2*a; fi; od; return a; end;
    Mn := (n,x,y) -> binomial(2*n-x,n-((x+y)/2)) - binomial(2*n-x,n-1-((x+y)/2));
    # Alternative:
    bin := n -> ListTools:-Reverse(convert(n, base, 2)):
    isA014486 := proc(n): local B, s, b; s := 0;
        if n > 0 then
          for b in bin(n) do
              s := s + ifelse(b = 1, 1, -1);
               if 0 > s then return false fi;
          od fi;
      s = 0 end:
    select(isA014486, [seq(0..240)]);  # Peter Luschny, Mar 13 2024
  • Mathematica
    cat[ n_ ] := (2 n)!/n!/(n+1)!; b2d[li_List] := Fold[2#1+#2&, 0, li]
    d2b[n_Integer] := IntegerDigits[n, 2]
    tree[n_] := Join[Table[1, {i, 1, n}], Table[0, {i, 1, n}]]
    nexttree[t_] := Flatten[Reverse[t]/. {a___, 0, 0, 1, b___}:> Reverse[{Sort[{a, 0}]//Reverse, 1, 0, b}]]
    wood[ n_ /; n<8 ] := NestList[ nexttree, tree[ n ], cat[ n ]-1 ]
    Table[ Reverse[ b2d/@wood[ j ] ], {j, 0, 6} ]//Flatten
    (* Alternative code *)
    tbQ[n_]:=Module[{idn2=IntegerDigits[n,2]},Count[idn2,1]==Length[idn2]/2&&Min[Accumulate[idn2/.{0->-1}]]>=0]; Join[{0},Select[Range[900],tbQ]] (* Harvey P. Dale, Jul 04 2013 *)
    balancedQ[0] = True; balancedQ[n_] := Module[{s = 0}, Do[s += If[b == 1, 1, -1]; If[s < 0, Return[False]], {b, IntegerDigits[n, 2]}]; Return[s == 0] ]; A014486 = FromDigits /@ IntegerDigits[Select[Range[0, 1000], balancedQ ]] (* Jean-François Alcover, Mar 05 2016 *)
    A014486Q[0] = True; A014486Q[n_] := Catch[Fold[If[# < 0, Throw[False], If[#2 == 0, # - 1, # + 1]] &, 0, IntegerDigits[n, 2]] == 0]; Select[Range[0, 880], A014486Q] (* JungHwan Min, Dec 11 2016 *)
    (* Uses Algorithm P from Knuth's TAOCP section 7.2.1.6 - see References and Links. *)
    alist[n_] := Block[{a = Flatten[Table[{1, 0}, n]], m = 2*n - 1, j, k},
        FromDigits[#, 2]& /@ Reap[
        While[True,
            Sow[a]; a[[m]] = 0;
            If[a[[m - 1]] == 0,
                a[[--m]] = 1, j = m - 1; k = 2*n - 1;
                While[j > 1 && a[[j]] == 1, a[[j--]] = 0; a[[k]] = 1; k -= 2];
                If[j == 1, Break[]];
                a[[j]] = 1; m = 2*n - 1]
        ]][[2, 1]]];
    Join[{{0}, {2}}, Array[alist, 4, 2]] (* Paolo Xausa, Mar 16 2024 *)
  • PARI
    isA014486(n)=my(v=binary(n),t=0);for(i=1,#v,t+=if(v[i],1,-1);if(t<0,return(0))); t==0 \\ Charles R Greathouse IV, Jun 10 2011
    
  • PARI
    a_rows(N) = my(a=Vec([[0]], N)); for(r=1, N-1, my(b=a[r], c=List()); foreach(b, t, my(v=if(t, valuation(t, 2), 0)); for(i=0, v, listput(~c, (t<<2)+(2<Ruud H.G. van Tol, May 16 2024
    
  • Python
    from itertools import count, islice
    from sympy.utilities.iterables import multiset_permutations
    def A014486_gen(): # generator of terms
        yield 0
        for l in count(1):
            for s in multiset_permutations('0'*l+'1'*(l-1)):
                c, m = 0, (l<<1)-1
                for i in range(m):
                    if s[i] == '1':
                        c += 2
                    if cA014486_list = list(islice(A014486_gen(),30)) # Chai Wah Wu, Nov 28 2023
  • SageMath
    def is_A014486(n) :
        B = bin(n)[2::] if n != 0 else 0
        s = 0
        for b in B :
            s += 1 if b=='1' else -1
            if 0 > s : return False
        return 0 == s
    def A014486_list(n): return [k for k in (1..n) if is_A014486(k) ]
    A014486_list(888) # Peter Luschny, Aug 10 2012
    

Extensions

Additional comments from Antti Karttunen, Aug 11 2000 and May 25 2004
Added a(0)=0 (which had been removed in June 2011), Joerg Arndt, Feb 27 2013

A074683 Permutation of natural numbers induced by the Catalan Automorphism *A074683 acting on parenthesizations as encoded and ordered by A014486/A063171.

Original entry on oeis.org

0, 1, 3, 2, 7, 6, 8, 5, 4, 17, 16, 18, 15, 14, 20, 19, 22, 12, 11, 21, 13, 10, 9, 45, 44, 46, 43, 42, 48, 47, 50, 40, 39, 49, 41, 38, 37, 54, 53, 55, 52, 51, 61, 60, 63, 31, 30, 62, 32, 29, 28, 57, 56, 64, 34, 33, 59, 36, 26, 25, 58, 35, 27, 24, 23, 129, 128, 130, 127, 126
Offset: 0

Views

Author

Antti Karttunen, Sep 11 2002

Keywords

Comments

This bijection maps between the "standard" ordering of binary trees as encoded by A014486 and "variant A quaternary encoding" as explained in the sequence A085184.
This is a rare example of Catalan Automorphism (with simple definition) where the cycle count sequence (A089411) is not monotone. (See A127296 for more complex example.)

Crossrefs

Row 12 of A122202. Inverse of A074684. a(n) = A057163(A074682(A057163(n))).
The number of cycles, maximum cycle sizes and LCM's of all cycle sizes in subpermutations limited by A014137 and A014138 are given by A089411, A086586 and A089412.

A074684 Permutation of natural numbers induced by Catalan Automorphism *A074684 acting on the parenthesizations encoded by A014486/A063171.

Original entry on oeis.org

0, 1, 3, 2, 8, 7, 5, 4, 6, 22, 21, 18, 17, 20, 13, 12, 10, 9, 11, 15, 14, 19, 16, 64, 63, 59, 58, 62, 50, 49, 46, 45, 48, 55, 54, 61, 57, 36, 35, 32, 31, 34, 27, 26, 24, 23, 25, 29, 28, 33, 30, 41, 40, 38, 37, 39, 52, 51, 60, 56, 43, 42, 47, 44, 53, 196, 195, 190, 189, 194
Offset: 0

Views

Author

Antti Karttunen, Sep 11 2002

Keywords

Comments

This bijection maps between the "standard" ordering of binary trees as encoded by A014486 and "variant A quaternary encoding" as explained in the sequence A085184.
This is a rare example of a simply defined Catalan Automorphism where the cycle count sequence (A089411) is not monotone. (See A127296 for a much more complex example.)

Crossrefs

Row 17 of A122201. Inverse of A074683. a(n) = A057163(A074681(A057163(n))).
The number of cycles, maximum cycle sizes and LCM's of all cycle sizes in subpermutations limited by A014137 and A014138 are given by A089411, A086586 and A089412.

A082355 Permutation of natural numbers induced by Catalan Automorphism *A082355 acting on the parenthesizations encoded by A014486/A063171.

Original entry on oeis.org

0, 1, 2, 3, 4, 5, 8, 6, 7, 9, 10, 13, 11, 12, 19, 20, 21, 14, 15, 22, 18, 16, 17, 23, 24, 27, 25, 26, 33, 34, 35, 28, 29, 36, 32, 30, 31, 51, 52, 55, 53, 54, 56, 57, 58, 37, 38, 59, 41, 39, 40, 60, 61, 64, 47, 48, 62, 49, 42, 43, 63, 50, 46, 44, 45, 65, 66, 69, 67, 68
Offset: 0

Views

Author

Antti Karttunen, Apr 17 2003

Keywords

Comments

This bijection maps between the "standard" ordering of binary trees as encoded by A014486 and "variant B quaternary encoding" as explained in the sequence A085184.

Crossrefs

Inverse of A082356. a(n) = A082357(A057163(n)). a(n) = A082363(A082853(n))+A082852(n). Cf. also A082351-A082352, A082357-A082358.
Differs from A057118 first time at n=42: a(42)=56, while A057118(42)=58.

A082356 Permutation of natural numbers induced by Catalan Automorphism *A082356 acting on the parenthesizations encoded by A014486/A063171.

Original entry on oeis.org

0, 1, 2, 3, 4, 5, 7, 8, 6, 9, 10, 12, 13, 11, 17, 18, 21, 22, 20, 14, 15, 16, 19, 23, 24, 26, 27, 25, 31, 32, 35, 36, 34, 28, 29, 30, 33, 45, 46, 49, 50, 48, 58, 59, 63, 64, 62, 54, 55, 57, 61, 37, 38, 40, 41, 39, 42, 43, 44, 47, 51, 52, 56, 60, 53, 65, 66, 68, 69, 67
Offset: 0

Views

Author

Antti Karttunen, Apr 17 2003

Keywords

Comments

This bijection maps between the "standard" ordering of binary trees as encoded by A014486 and "variant B quaternary encoding" as explained in the sequence A085184.

Crossrefs

Inverse of A082355. a(n) = A057163(A082358(n)). a(n) = A082364(A082853(n))+A082852(n). Cf. also A082351-A082352, A082357-A082358.
Differs from A057117 first time at n=56: a(56)=42, while A057117(56)=44.

A244161 Greedy Catalan Base (A014418) interpreted as base-4 numbers, then shown in decimal.

Original entry on oeis.org

0, 1, 4, 5, 8, 16, 17, 20, 21, 24, 32, 33, 36, 37, 64, 65, 68, 69, 72, 80, 81, 84, 85, 88, 96, 97, 100, 101, 128, 129, 132, 133, 136, 144, 145, 148, 149, 152, 160, 161, 164, 165, 256, 257, 260, 261, 264, 272, 273, 276, 277, 280, 288, 289, 292, 293, 320, 321, 324, 325
Offset: 0

Views

Author

Antti Karttunen, Jun 23 2014

Keywords

Comments

This representation does not lose any information, because C(n+1)/C(n) [where C(n) is the n-th Catalan number, A000108(n)] approaches 4 from below, but never attains it.
Analogously to "Fibbinary numbers", A003714, this sequence could be called "Catquaternary numbers".

Crossrefs

Programs

  • Python
    from sympy import catalan
    def a244160(n):
        if n==0: return 0
        i=1
        while True:
            if catalan(i)>n: break
            else: i+=1
        return i - 1
    def a(n):
        if n==0: return 0
        x=a244160(n)
        return 4**(x - 1) + a(n - catalan(x))
    print([a(n) for n in range(101)]) # Indranil Ghosh, Jun 08 2017

Formula

a(0) = 0, a(n) = 4^(A244160(n)-1) + a(n-A000108(A244160(n))). [Where A244160 gives the index of the largest Catalan number that still fits into the sum].
A000035(a(n)) = A000035(A014418(n)). [This sequence and the base-10 version are equal when reduced modulo 2].

A085183 a(n) = A053645(A057520(n)), i.e., the terms of A014486 without their most significant bit (1) and the least significant bit (0).

Original entry on oeis.org

0, 1, 2, 5, 6, 9, 10, 12, 21, 22, 25, 26, 28, 37, 38, 41, 42, 44, 49, 50, 52, 56, 85, 86, 89, 90, 92, 101, 102, 105, 106, 108, 113, 114, 116, 120, 149, 150, 153, 154, 156, 165, 166, 169, 170, 172, 177, 178, 180, 184, 197, 198, 201, 202, 204, 209, 210, 212, 216, 225
Offset: 1

Views

Author

Antti Karttunen, Jun 14 2003

Keywords

Crossrefs

Same sequence in base 4: A085184.

A085185 Sequence A014486 shown in base 4.

Original entry on oeis.org

0, 2, 22, 30, 222, 230, 302, 310, 320, 2222, 2230, 2302, 2310, 2320, 3022, 3030, 3102, 3110, 3120, 3202, 3210, 3220, 3300, 22222, 22230, 22302, 22310, 22320, 23022, 23030, 23102, 23110, 23120, 23202, 23210, 23220, 23300, 30222, 30230, 30302
Offset: 0

Views

Author

Antti Karttunen, Jun 14 2003

Keywords

Crossrefs

Cf. A085184. Number of terms with n significant digits is given by A000108(n).

Formula

a(n) = A007090(A014486(n)).
Showing 1-8 of 8 results.