login
BII-numbers of chains of nonempty sets.
20

%I #21 Jun 08 2024 01:47:56

%S 0,1,2,4,5,6,8,16,17,24,32,34,40,64,65,66,68,69,70,72,80,81,88,96,98,

%T 104,128,256,257,384,512,514,640,1024,1025,1026,1028,1029,1030,1152,

%U 1280,1281,1408,1536,1538,1664,2048,2056,2176,4096,4097,4104,4112,4113,4120

%N BII-numbers of chains of nonempty sets.

%C A binary index of n is any position of a 1 in its reversed binary expansion. We define the set-system with BII-number n to be obtained by taking the binary indices of each binary index of n. Every finite set of finite nonempty sets has a different BII-number. For example, 18 has reversed binary expansion (0,1,0,0,1), and since the binary indices of 2 and 5 are {2} and {1,3} respectively, it follows that the BII-number of {{2},{1,3}} is 18.

%C Elements of a set-system are sometimes called edges. In a chain of sets, every edge is a subset or superset of every other edge.

%H John Tyler Rascoe, <a href="/A326703/b326703.txt">Table of n, a(n) for n = 1..4860</a>

%e The sequence of all chains of nonempty sets together with their BII-numbers begins:

%e 0: {}

%e 1: {{1}}

%e 2: {{2}}

%e 4: {{1,2}}

%e 5: {{1},{1,2}}

%e 6: {{2},{1,2}}

%e 8: {{3}}

%e 16: {{1,3}}

%e 17: {{1},{1,3}}

%e 24: {{3},{1,3}}

%e 32: {{2,3}}

%e 34: {{2},{2,3}}

%e 40: {{3},{2,3}}

%e 64: {{1,2,3}}

%e 65: {{1},{1,2,3}}

%e 66: {{2},{1,2,3}}

%e 68: {{1,2},{1,2,3}}

%e 69: {{1},{1,2},{1,2,3}}

%e 70: {{2},{1,2},{1,2,3}}

%e 72: {{3},{1,2,3}}

%e 80: {{1,3},{1,2,3}}

%e 81: {{1},{1,3},{1,2,3}}

%e 88: {{3},{1,3},{1,2,3}}

%e 96: {{2,3},{1,2,3}}

%e 98: {{2},{2,3},{1,2,3}}

%t bpe[n_]:=Join@@Position[Reverse[IntegerDigits[n,2]],1];

%t stableQ[u_,Q_]:=!Apply[Or,Outer[#1=!=#2&&Q[#1,#2]&,u,u,1],{0,1}];

%t Select[Range[0,100],stableQ[bpe/@bpe[#],!SubsetQ[#1,#2]&&!SubsetQ[#2,#1]&]&]

%o (Python)

%o from itertools import chain, count, combinations, islice

%o from sympy.combinatorics.subsets import ksubsets

%o def subsets(x):

%o for i in range(1,len(x)):

%o for j in ksubsets(x,i):

%o yield(list(j))

%o def a_gen(): #generator of terms

%o yield 0

%o for n in count(1):

%o t,v,j = [[]],[],0

%o for i in chain.from_iterable(combinations(range(1, n+1), r) for r in range(n+1)):

%o if n in i:

%o t[j].append([list(i)])

%o while n:

%o t.append([])

%o for i in t[j]:

%o if len(i[-1]) > 1:

%o for k in list(subsets(i[-1])):

%o t[j+1].append(i.copy()+[k])

%o if len(t[j+1]) < 1:

%o break

%o j += 1

%o for j in chain.from_iterable(t):

%o v.append(sum(2**(sum(2**(m-1) for m in k)-1) for k in j))

%o yield from sorted(v)

%o A326703_list = list(islice(a_gen(), 55)) # _John Tyler Rascoe_, Jun 07 2024

%Y Chains of nonempty sets are counted by A000629.

%Y MM-numbers of chains of multisets are A318991.

%Y BII-numbers of antichains of nonempty sets are A326704.

%Y Cf. A000120, A014466, A029931, A035327, A048793, A070939, A326031, A326701, A326702.

%K nonn,base

%O 1,3

%A _Gus Wiseman_, Jul 21 2019