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.

A211344 Atomic Boolean functions interpreted as binary numbers.

Original entry on oeis.org

1, 3, 5, 15, 51, 85, 255, 3855, 13107, 21845, 65535, 16711935, 252645135, 858993459, 1431655765, 4294967295, 281470681808895, 71777214294589695, 1085102592571150095, 3689348814741910323, 6148914691236517205
Offset: 0

Views

Author

Tilman Piesk, Jul 24 2012

Keywords

Comments

Row n of the triangle shows the atoms among n-ary Boolean functions:
1 01
3 5 0011 0101
15 51 85 00001111 00110011 01010101
Often n-ary x_k = T(n,k), e.g. for 2-ary functions x_1=0011, x_2=0101 and for 3-ary functions x_1=00001111, x_2=00110011, x_3=01010101.
An easier generalized way is the enumeration from right to left, here shown with k starting from 0, so that n-ary x_k = T(n, n-k-1). As numbers in the diagonals on the right have the same bit pattern, this corresponds to the infinitary definition of x_k as a binary fraction 1/A000215(k) = 1/(2^2^k + 1):
2-ary x_0=0101=5, 3-ary x_0=01010101=85, infinitary x_0 = 1/3 = .010101...
2-ary x_1=0011=3, 3-ary x_1=00110011=51, infinitary x_1 = 1/5 = .001100110011...

Crossrefs

A001317, A089633, A051179 (left diagonal)

Programs

  • MATLAB
    Seq = sym(zeros(55,1)) ;
    Filledlines = 0 ;
    for m=1:10
        for n=1:m
            Sum = sym(0) ;
            for k=0:2^m-1
                if mod(  floor( k/2^(m-n) )  ,2) == 0
                   Sum = Sum + 2^sym(k) ;
                end
            end
            Seq( Filledlines + n ) = Sum ;
        end
        Filledlines = Filledlines + m ;
    end
    
  • Python
    from itertools import count, islice
    def A211344_gen(): # generator of terms
        return (sum((bool(~(m:=(1<A211344_list = list(islice(A211344_gen(),20)) # Chai Wah Wu, May 03 2023
    
  • Python
    def arity_and_atom_to_integer(arity, atom):
        result = 0
        max_place = (1 << arity) - (1 << atom) - 1
        for exponent in range(max_place + 1):
            if not bool(~max_place & max_place - exponent):
                place_value = 1 << exponent
                result += place_value
        return result
    def A211344(n, k):
        return arity_and_atom_to_integer(n, n-k-1) # Tilman Piesk, Jan 25 2025

Formula