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.

A367555 Number of zeros (or ones) in each row of the iterates of the Christmas tree pattern map (A367508).

Original entry on oeis.org

1, 1, 3, 3, 3, 6, 2, 6, 2, 6, 6, 10, 5, 5, 10, 5, 5, 10, 5, 10, 10, 15, 3, 9, 3, 9, 9, 15, 3, 9, 3, 9, 9, 15, 3, 9, 9, 15, 9, 15, 15, 21, 7, 7, 14, 7, 7, 14, 7, 14, 14, 21, 7, 7, 14, 7, 7, 14, 7, 14, 14, 21, 7, 7, 14, 7, 14, 14, 21, 7, 14, 14, 21, 14, 21, 21, 28
Offset: 1

Views

Author

Paolo Xausa, Nov 22 2023

Keywords

Comments

See A367508 for the description of the Christmas tree patterns, references and links.

Examples

			The following diagram shows the first 4 tree pattern orders, along with the corresponding number of zeros = number of ones.
.
Order 1:                        |
              0  1              |   1
                                |
Order 2:                        |
               10               |   1
           00  01  11           |   3
                                |
Order 3:                        |
            100  101            |   3
            010  110            |   3
       000  001  011  111       |   6
                                |
Order 4:                        |
              1010              |   2
        1000  1001  1011        |   6
              1100              |   2
        0100  0101  1101        |   6
        0010  0110  1110        |   6
  0000  0001  0011  0111  1111  |  10
.
		

Crossrefs

Programs

  • Mathematica
    With[{imax=9},Map[Total,NestList[Map[Delete[{If[Length[#]>1,Rest[#],Nothing],Join[{First[#]},#+1]},0]&],{{0,1}},imax-1],{2}]] (* Generates terms up to order 9 *)
  • Python
    from itertools import islice
    from functools import reduce
    def uniq(r): return reduce(lambda u, e: u if e in u else u+[e], r, [])
    def agen():  # generator of terms
        R = [["0", "1"]]
        while R:
            r = R.pop(0)
            yield sum(e.count("1") for e in r)
            if len(r) > 1: R.append(uniq([r[k]+"0" for k in range(1, len(r))]))
            R.append(uniq([r[0]+"0", r[0]+"1"] + [r[k]+"1" for k in range(1, len(r))]))
    print(list(islice(agen(), 77))) # Michael S. Branicky, Nov 23 2023