login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A349647
Nonnegative integers which produce a record minimum MD5 hash.
3
0, 1, 4, 6, 27, 134, 138, 168, 363, 1970, 5329, 738639, 752491, 848775, 1803305, 2420500, 20412333, 207691249, 220455692, 517921150, 521602912, 1149023650, 1289986143, 5963709738, 6262635619, 23831964366, 79255202271, 1970864394858, 2255739204027
OFFSET
1,3
COMMENTS
a(1) = 0; a(n) is the smallest k such that MD5(k) < MD5(a(n-1)), where integer parameters to MD5 are encoded as base-10 ASCII strings.
If we assume that MD5 behaves like a random function from N to {0, ..., 2^128-1}, the expected length of this sequence is the harmonic number H(2^128) ~= 89.3.
a(33) > 10^15.
LINKS
Wikipedia, MD5
EXAMPLE
a(5) = 27 because MD5("27") = 02e74f10e0327ad868d138f2b4fdd6f0_16 = 3859480213286334249913589638377625328, which is smaller than all previous values MD5("0"), ..., MD5("26").
MATHEMATICA
recordsBy[l_, P_] :=
Module[{max = -Infinity, x, i, recs = {}},
For[i = 1, i <= Length[l], i++,
x = P[l[[i]]];
If[x > max,
max = x;
AppendTo[recs, l[[i]]];
]
];
recs
];
recordsBy[Range[1000], -Hash[ToString[#], "MD5"] &]
PROG
(Python)
from hashlib import md5
def afind(limit):
record = "~"
for k in range(limit+1):
hash = md5(str(k).encode('utf-8')).hexdigest()
if hash < record:
print(k, end=", ")
record = hash
afind(10**7) # Michael S. Branicky, Nov 24 2021
CROSSREFS
Record maxima: A349646.
Sequence in context: A105409 A109934 A068321 * A012896 A013078 A106286
KEYWORD
nonn,base,fini,hard
AUTHOR
Ben Whitmore, Nov 23 2021
STATUS
approved