Adam Pearce github twitter email rss

Aaronson Oracle

Press the left and right arrow keys randomly, as fast as you can!


The computer will analyze the patterns in your key strokes and predict your next input. Typically it is correct around 70% of the time—humans have a hard time acting randomly.

How does it work?

Each of your key strokes is recorded. The computer finds all the times you entered your last four key strokes and compares the number of times the next key stroke was a to the number of times the next key stroke was a . It guesses whichever has happened more often.

The diagram below shows how many times you’ve entered each five character sequence, with more common sequences drawn with thicker paths. The last four characters you’ve entered are highlighted . You can see the computer’s guess by looking at which of the lines branching off your last character is thickest.

Knowing what the computer will guess, you can guarantee that it is always wrong by picking the other direction. Doing the opposite of what a computer tells you isn’t quite free will though!

More reading

Inspired by Nick Merrill’s implementation of Scott Aaronson’s program.

A similar approach works for Rock-Paper-Scissors. Each level of the tree branches three times instead of two.

Human-generated random inputs are distinguishable from true random noise along a variety of statistical measures; with practice, humans can produce inputs closer to random noise.

We also detect patterns in random noise.

Code for this page. The computer doesn’t cheat!