A306299 Number of binary carry-connected subsets of [n] containing n (for n > 0).
1, 1, 1, 4, 1, 12, 28, 64, 1, 212, 452, 960, 1972, 4032, 8128, 16384, 1, 64284, 129260, 259904, 520636, 1043264, 2087744, 4177920, 8381836, 16768832, 33541952, 67092480, 134201152, 268419072, 536854528, 1073741824, 1, 4294569380, 8589336404, 17179068096
Offset: 0
Keywords
Links
- Alois P. Heinz, Table of n, a(n) for n = 0..1024
- Wikipedia, Bitwise operation
- Wikipedia, Partition of a set
Programs
-
Maple
h:= proc(n, s) local i, m; m:= n; for i in s do m:= Bits[Or](m, i) od; {m} end: g:= (n, s)-> (w-> `if`(w={}, s union {n}, s minus w union h(n, w)))(select(x-> Bits[And](n, x)>0, s)): b:= proc(n, s) option remember; `if`(n=0, `if`(nops(s)>1, 0, 1), b(n-1, s)+b(n-1, g(n, s))) end: a:= n-> `if`(n=0, 1, b(n-1, {n})): seq(a(n), n=0..42);
-
Mathematica
h[n_, s_] := Module[{i, m = n}, Do[m = BitOr[m, i], {i, s}]; {m}]; g[n_, s_] := Function[w, If[w == {}, s ~Union~ {n}, s ~Complement~ w ~Union~ h[n, w]]][Select[s, BitAnd[n, #] > 0&]]; b[n_, s_] := b[n, s] = If[n == 0, If[Length[s] > 1, 0, 1], b[n - 1, s] + b[n - 1, g[n, s]]]; a[n_] := If[n == 0, 1, b[n - 1, {n}]]; a /@ Range[0, 42] (* Jean-François Alcover, May 10 2020, after Maple *)
Comments