[go: nahoru, domu]

login
Search: a112510 -id:a112510
     Sort: relevance | references | number | modified | created      Format: long | short | data
Maximum number of numbers represented by substrings of an n-bit number's binary representation.
+10
6
1, 3, 5, 7, 10, 13, 17, 22, 27, 33, 40, 47, 55, 64, 73, 83, 94, 106, 118, 131, 145, 160, 176, 192, 209, 227, 246, 265, 285, 306, 328
OFFSET
1,2
COMMENTS
Substrings must be contiguous, they are treated as stand-alone binary representations and the reversal of substrings is not permitted.
LINKS
2008/9 British Mathematical Olympiad Round 2, Problem 4, Jan 29 2009.
EXAMPLE
To see why a(4)=7 (and A112510(4)=12 and A112511(4)=14), consider all numbers whose binary representations require exactly 4 bits: 1000, 1001, 1010, 1011, 1100, 1101, 1110 and 1111. For each of these binary representations in turn, we find the nonnegative integers represented by all of its contiguous substrings. We count these distinct integer values (putting the count in {}s):
1000: any 0, either 00, or 000 -> 0, 1 -> 1, 10 -> 2, 100 -> 4, 1000 -> 8 {5};
1001: either 0, or 00 -> 0, either 1, 01, or 001 -> 1, 10 -> 2, 100 -> 4, 1001 -> 9 {5};
(For brevity, binary substrings are shown below only if they produce values not shown yet.)
1010: 0, 1, 2, 101 -> 5, 1010 -> 10 {5};
1011: 0, 1, 2, 11 -> 3, 5, 1011 -> 11 {6};
1100: 0, 1, 2, 3, 4, 110 -> 6, 1100 -> 12 {7};
1101: 0, 1, 2, 3, 5, 6, 1101 -> 13 {7};
1110: 0, 1, 2, 3, 6, 111 -> 7, 1110 -> 14 {7};
1111: 1, 3, 7, 1111 -> 15 {4}.
Because the maximum number of distinct integer values {in brackets} is 7, a(4)=7. The smallest 4-bit number for which 7 distinct values are found is 12, so A112510(4)=12. The largest 4-bit number for which 7 are found is 14, so A112511(4)=14. (For n=4 the count is a(n)=7 also for all values (only one, 13, here) between A112510(n) and A112511(n). This is not the case in general.).
PROG
(Python)
from itertools import product
def c(w):
return len(set(w[i:j+1] for i in range(len(w)) if w[i] != "0" for j in range(i, len(w)))) + int("0" in w)
def a(n):
return max(c("1"+"".join(b)) for b in product("01", repeat=n-1))
print([a(n) for n in range(1, 21)]) # Michael S. Branicky, Jan 13 2023
CROSSREFS
Cf. A112510 (least n-bit number for which this maximum occurs), A112511 (greatest n-bit number for which this maximum occurs).
Cf. A078822, A122953, A156022, A156023, A156024, A156025. Equals A156022(n)+1 for n >= 2. [From Joseph Myers, Feb 01 2009]
KEYWORD
nonn,base,more
AUTHOR
Rick L. Shepherd, Sep 09 2005
EXTENSIONS
a(21) to a(31) from Joseph Myers, Feb 01 2009
STATUS
approved
Greatest n-bit number whose binary representation's substrings represent the maximal number (A112509(n)) of distinct integers.
+10
6
1, 2, 6, 14, 29, 61, 123, 244, 500, 1004, 2009, 4057, 8121, 16243, 32627, 65267, 130535, 261066, 523210, 1046474, 2092954, 4185909, 8371816, 16760424, 33521256, 67042536, 134085073, 268302801, 536607185, 1073214417, 2146428840
OFFSET
1,2
COMMENTS
See A112509 for a full explanation and example.
LINKS
2008/9 British Mathematical Olympiad Round 2, Problem 4, Jan 29 2009.
PROG
(Python)
from itertools import product
def c(w):
return len(set(w[i:j+1] for i in range(len(w)) if w[i] != "0" for j in range(i, len(w)))) + int("0" in w)
def a(n):
m, argm = -1, None
for b in product("01", repeat=n-1):
v = c("1"+"".join(b))
if v >= m:
m, argm = v, int("1"+"".join(b), 2)
return argm
print([a(n) for n in range(1, 21)]) # Michael S. Branicky, Jan 13 2023
CROSSREFS
Cf. A112509 (corresponding maximum), A112510 (least n-bit number for which this maximum occurs).
KEYWORD
base,nonn
AUTHOR
Rick L. Shepherd, Sep 09 2005
EXTENSIONS
a(21)-a(31) from Joseph Myers, Feb 01 2009
STATUS
approved
Maximum number of positive numbers represented by substrings of an n-bit number's binary representation
+10
6
1, 2, 4, 6, 9, 12, 16, 21, 26, 32, 39, 46, 54, 63, 72, 82, 93, 105, 117, 130, 144, 159, 175, 191, 208, 226, 245, 264, 284, 305, 327
OFFSET
1,2
COMMENTS
Equivalently, maximum number of distinct substrings starting with a "1" digit.
LINKS
2008/9 British Mathematical Olympiad Round 2, Problem 4, Jan 29 2009.
PROG
(Python)
from itertools import product
def s(w):
return set(w[i:j+1] for i in range(len(w)) if w[i] != "0" for j in range(i, len(w)))
def a(n):
return max(len(s("1"+"".join(b))) for b in product("01", repeat=n-1))
print([a(n) for n in range(1, 21)]) # Michael S. Branicky, Jan 13 2023
CROSSREFS
Equals A112509(n)-1 for n >= 2.
KEYWORD
nonn,base,more
AUTHOR
Joseph Myers, Feb 01 2009
STATUS
approved
n(n+1)/2 - A112509(n)
+10
6
0, 0, 1, 3, 5, 8, 11, 14, 18, 22, 26, 31, 36, 41, 47, 53, 59, 65, 72, 79, 86, 93, 100, 108, 116, 124, 132, 141, 150, 159, 168
OFFSET
1,4
COMMENTS
n(n+1)/2 is the total number of nonempty substrings of an n-bit binary number; A112509 is the maximum number of substrings representing distinct integers.
FORMULA
c_1 + o(1) <= a(n)/n^1.5 <= c_2 + o(1) for some positive constants c_1 and c_2; it seems likely a(n)/n^1.5 tends to some positive constant limit.
CROSSREFS
KEYWORD
nonn
AUTHOR
Joseph Myers, Feb 01 2009
STATUS
approved
a(n) = n*(n+1)/2 - A156022(n).
+10
6
0, 1, 2, 4, 6, 9, 12, 15, 19, 23, 27, 32, 37, 42, 48, 54, 60, 66, 73, 80, 87, 94, 101, 109, 117, 125, 133, 142, 151, 160, 169
OFFSET
1,3
COMMENTS
n(n+1)/2 is the total number of nonempty substrings of an n-bit binary number; A156022 is the maximum number of substrings representing distinct positive integers.
LINKS
2008/9 British Mathematical Olympiad Round 2, Problem 4, Jan 29 2009.
FORMULA
c_1 + o(1) <= a(n)/n^1.5 <= c_2 + o(1) for some positive constants c_1 and c_2; it seems likely a(n)/n^1.5 tends to some positive constant limit.
CROSSREFS
Equals A156023(n)+1 for n >= 2.
KEYWORD
nonn,base,more
AUTHOR
Joseph Myers, Feb 01 2009
STATUS
approved
Number of n-bit numbers whose binary representation's substrings represent the maximal number (A112509(n)) of distinct integers.
+10
6
2, 1, 1, 3, 2, 6, 5, 1, 4, 5, 2, 8, 10, 4, 16, 22, 12, 2, 10, 19, 17, 7, 1, 5, 9, 7, 2, 11, 24, 28, 20
OFFSET
1,1
COMMENTS
If only positive integer substrings are counted (see A156022), the first two terms become 1,2 (the n-bit numbers in question being 1, 10, 11 in binary) and all subsequent terms are unchanged.
LINKS
2008/9 British Mathematical Olympiad Round 2, Problem 4, Jan 29 2009.
EXAMPLE
The n-bit numbers in question are, in binary, for n <= 8: 0 1; 10; 110; 1100 1101 1110, 11100 11101; 111000 111001 111010 111011 111100 111101; 1110100 1111000 1111001 1111010 1111011; 11110100.
PROG
(Python)
from itertools import product
def c(w):
return len(set(w[i:j+1] for i in range(len(w)) if w[i] != "0" for j in range(i, len(w)))) + int("0" in w)
def a(n):
if n == 1: return 2
m, argm, cardm = -1, None, 0
for b in product("01", repeat=n-1):
v = c("1"+"".join(b))
if v == m: argm, cardm = int("1"+"".join(b), 2), cardm + 1
elif v > m: m, argm, cardm = v, int("1"+"".join(b), 2), 1
return cardm
print([a(n) for n in range(1, 21)]) # Michael S. Branicky, Jan 13 2023
CROSSREFS
Cf. A078822, A112509 (corresponding maximum), A112510 (least such number), A112511 (greatest such number), A122953, A156022, A156023, A156024.
KEYWORD
nonn,base,more
AUTHOR
Joseph Myers, Feb 01 2009
STATUS
approved
a(n) is the least k such that A122953(k) = n.
+10
2
1, 2, 4, 6, 11, 12, 22, 24, 28, 44, 52, 56, 88, 92, 112, 116, 186, 184, 220, 232, 244, 368, 376, 440, 472, 488, 744, 752, 880, 888, 976, 984, 1504, 1512, 1780, 1776, 1912, 1968, 2008, 3024, 3048, 3552, 3568, 3824, 3952, 4016, 6064, 6096, 7112, 7136, 7648, 7664
OFFSET
1,2
COMMENTS
All positive terms of A112510 belong to this sequence.
The first known odd terms are a(1) = 1, a(5) = 11 and a(77) = 61321.
The sequence is not strictly increasing; for example a(17) = 186 and a(18) = 184.
The binary plot of the first terms has interesting features (see Links section).
EXAMPLE
The first occurrence of 6 in A122953 is A122953(12) = 6, hence a(6) = 12.
PROG
(C++) See Links section.
CROSSREFS
KEYWORD
nonn,base
AUTHOR
Rémy Sigrist, Mar 09 2018
STATUS
approved

Search completed in 0.009 seconds