williamkuszmaul
Joined 10 years ago
Joined 10 years ago
There are also problems in online algorithms where randomization provably changes what is possible, for example the "cup game problem." (https://arxiv.org/abs/1904.02861)
Finally, although randomized primality testing (1970s) is often credited as the start of randomized algorithms as a field, it's worth noting that hash tables (1954) and quick sort (1961) were much earlier.
I didn't invent the algorithmic idea --- it's basically a simplification of a data structure that was published in ICALP 2003 [1]. As far as I know, the idea of combining hash tables and tries in this kind of way (despite being incredibly simple!) doesn't appear in either the theoretical or experimental literature prior to that.
I'd be interested in any other earlier sources that people might have.
[1] Raman, Rao. Succinct Dynamic Dictionaries and Trees. https://link.springer.com/chapter/10.1007/3-540-45061-0_30. ICALP, 2003.
There are already implementations of sample sorting that are much faster than c++ sort (but I don't recall how much faster). I'd be very interested in a comparison to some of those...
Also, since we are sorting integers, I'd also be interested to know how well a modern implementation of radix sort can be made.
"sum (20000 choose x)/2^20000 for x from 10231 to 20000",
which Wolfram Alpha evaluates to 0.00056.
The probability of getting a number of flips that differs from 10000 by at least 231 is twice that, so about 0.001.
So, in fact, the probability of this happening by dumb luck is about 1/1000. That's pretty strong evidence.