1. 7
  1.  

  2. 4

    I managed to stay ahead of the machine for about 150 plays. After 1000 (excluding passes) it was 565-435 (machine winning) which would be a 4-sigma event if it happened by chance. I’d call that a significant beat.

    Looking at the source code, I’ve noticed that there is a way to “beat” the machine (at least, make it keep passing). If you can find a good finite source of randomness for about 71,000 moves, you get to the point where 1.8 * 1.01 ^ moves overflows an IEEE floating point number and make it always pass. So, you only have to generate about 9KB of random data (and be a bit lucky, since perfect randomness only gives you a ~50% chance of winning). Or you could cheat, look at the algorithm, and generate adverse data, but I don’t think that that’s fair.

    This could be fixed by exponentially attenuating what is in the array a (time decay) instead of exponentially escalating the value of each observation (as a function of the number of moves that have passed).

    1. 2

      “ you get to the point where 1.8 * 1.01 ^ moves overflows an IEEE floating point number and make it always pass. ”

      You get the win for thinking like a hacker instead of a random, button pusher. ;)

    2. 1

      it’s actually really easy to hover around 50% or below, the web page would be better off picking between one and zero at “random” ?

      1. 1

        I’ve played a single round with a score of 1 (Man) - 0 (Machine). I’ve left it at my peak!