|
|
A031443
|
|
Digitally balanced numbers: positive numbers that in base 2 have the same number of 0's as 1's.
|
|
101
|
|
|
2, 9, 10, 12, 35, 37, 38, 41, 42, 44, 49, 50, 52, 56, 135, 139, 141, 142, 147, 149, 150, 153, 154, 156, 163, 165, 166, 169, 170, 172, 177, 178, 180, 184, 195, 197, 198, 201, 202, 204, 209, 210, 212, 216, 225, 226, 228, 232, 240, 527, 535, 539, 541, 542, 551
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,1
|
|
COMMENTS
|
Also numbers k such that the binary digital mean dm(2, k) = (Sum_{i=1..d} 2*d_i - 1) / (2*d) = 0, where d is the number of digits in the binary representation of k and d_i the individual digits. - Reikku Kulon, Sep 21 2008
Each run of values begins with 2^(2k + 1) + 2^(k + 1) - 2^k - 1. The initial values increase according to the sequence {2^(k - 1), 2^(k - 2), 2^(k - 3), ..., 2^(k - k)}.
After this, the values follow a periodic sequence of increases by successive powers of two with single odd values interspersed.
Each run ends with an odd increase followed by increases of {2^(k - k), ..., 2^(k - 2), 2^(k - 1), 2^k}, finally reaching 2^(2k + 2) - 2^(k + 1).
Similar behavior occurs in other bases. (End)
|
|
LINKS
|
|
|
FORMULA
|
a(n+1) = a(n) + 2^k + 2^(m-1) - 1 + floor((2^(k+m) - 2^k)/a(n))*(2^(2*m) + 2^(m-1)) where k is the largest integer such that 2^k divides a(n) and m is the largest integer such that 2^m divides a(n)/2^k+1. - Ulrich Schimke (UlrSchimke(AT)aol.com)
|
|
EXAMPLE
|
9 is a term because '1001' contains 2 '0's and 2 '1's.
|
|
MAPLE
|
a:=proc(n) local nn, n1, n0: nn:=convert(n, base, 2): n1:=add(nn[i], i=1..nops(nn)): n0:=nops(nn)-n1: if n0=n1 then n else end if end proc: seq(a(n), n = 1..240); # Emeric Deutsch, Jul 31 2008
|
|
MATHEMATICA
|
Select[Range[250], DigitCount[#, 2, 1]==DigitCount[#, 2, 0]&] (* Harvey P. Dale, Jul 22 2013 *)
FromDigits[#, 2]&/@DeleteCases[Flatten[Permutations/@Table[PadRight[{}, 2n, {1, 0}], {n, 5}], 1], _?(#[[1]]==0&)]//Sort (* Harvey P. Dale, May 30 2016 *)
|
|
PROG
|
(PARI) for(n=1, 100, b=binary(n); l=length(b); if(sum(i=1, l, component(b, i))==l/2, print1(n, ", ")))
(Magma) [ n: n in [2..250] | Multiplicity({* z: z in Intseq(n, 2) *}, 0) eq &+Intseq(n, 2) ]; // Bruno Berselli, Jun 07 2011
(Haskell) -- See link, showing that Ulrich Schimkes formula provides a very efficient algorithm. Reinhard Zumkeller, Jun 15 2011
(Perl) for my $half ( 1 .. 4 ) {
my $N = 2 * $half; # only even widths apply
my $vector = (1 << ($N-1)) | ((1 << ($N/2-1)) - 1); # first key
my $n = 1; $n *= $_ for 2 .. $N; # N!
my $d = 1; $d *= $_ for 2 .. $N/2; # (N/2)!
for (1 .. $n/($d*$d*2)) {
print "$vector, ";
my ($v, $d) = ($vector, 0);
until ($v & 1 or !$v) { $d = ($d << 1)|1; $v >>= 1 }
$vector += $d + 1 + (($v ^ ($v + 1)) >> 2); # next key
}
(Python)
from sympy.utilities.iterables import multiset_permutations
A031443_list = [int('1'+''.join(p), 2) for n in range(1, 10) for p in multiset_permutations('0'*n+'1'*(n-1))] # Chai Wah Wu, Nov 15 2019
|
|
CROSSREFS
|
Cf. A049354-A049360, A000120, A001316, A006519, A023416, A070939, A144777, A145057, A145058, A145059, A145060, A144912, A145037, A191292, A090050, A014486, A061854, A037861, A079309.
Terms of binary width n are enumerated by A001700.
|
|
KEYWORD
|
nonn,base,easy,nice,changed
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|