
Predicting one of 2 characters you will randomly press - aram
https://github.com/elsehow/aaronson-oracle
======
sctb
Recent discussion:
[https://news.ycombinator.com/item?id=11824164](https://news.ycombinator.com/item?id=11824164)

------
throwaway2016a
For me it is pretty consistently 50% +/\- 5 even after a minute. It doesn't
seem to work well if you repeat the same key a lot (i.e don't flip to often).

~~~
oneeyedpigeon
I got 52% after a good lot of keypresses (not sure exactly how many). I chose
to not look at the screen at all during that time - I think that probably
helps.

~~~
Forge36
Mine started at 25% and worked it's way up to 54%. Which also involved me
holding down keys for a few seconds. I'm not sure if it works or if Hacker
New's user base is skewed towards people who are slightly better at being
random. (or if that's cause by self reporting, would someone whose best was
80% want to come forward?)

Edit: Interesting tidbit: I pre-seeded at 100% by holding down F and it
trended down to ~68% before I decided I shouldn't spend too much time on this.
Maybe we didn't use it long enough?

------
andrezsanchez
I did something like this a long time ago in a little competition for beating
others' rock paper scissors programs, except I used the other players' moves
relative to my own (e.g. my program could catch on to the other player
choosing the move that would beat my last move) as well as their current
pattern of winning or losing.

------
vorotato
It works if you're trying to be random, however if you're trying to react and
respond to its patterns you can win.

------
rohanprabhu
So, I tried a simple python one-liner:

[os.urandom(1)[0] < 128 for x in xrange(0, 100)]

and typed 'd' for True and 'f' for False in the array, bringing the accuracy
of the predictor down to 53%. Theoretically, I'm guessing doing it for large
enough numbers should make it exactly 50%.

~~~
mikeash
If it _doesn 't_ come down to 50% for sufficiently large numbers, you've found
a break in your OS's urandom and someone is about to be famous!

------
dzdt
Doesn't work from my smartphone. Sounds like a fun challenge though, would
like to try.

~~~
amake
I'm on OS X with Firefox 47.0.1 and it doesn't work for me either :(

~~~
justinsaccount
I'm on OS X with Firefox 47.0.1 and it works fine. It doesn't display anything
until the 6th keypress.

~~~
mikeash
Doesn't work in Safari for me, but it does work in Chrome (after pressing keys
six times).

~~~
justinsaccount
Yeah, it uses this style function definition (ES6?) in a few places:

    
    
      document.addEventListener("DOMContentLoaded", () => {
    

Safari doesn't support that.

------
js8
Is there, for a given k, an easy to remember sequence (easy to remember
algorithm with little state) that has all the k-grams with the same frequency?

For k=1: 01 repeating

For k=2: 0011 repeating

For k=3: 00010111 repeating

~~~
justinpombrio
They're called De Bruijn sequences[1], and there's an algorithm for
constructing them. I'm not sure how easy it is to run in your head, though.

[1]
[https://en.wikipedia.org/wiki/De_Bruijn_sequence#Algorithm](https://en.wikipedia.org/wiki/De_Bruijn_sequence#Algorithm)

------
tokenizerrr
Very cool. Am getting ~50% accuracy so I'm glad to see my free will is still
intact!

------
andrewclunn
40%? Lame.

