
Test your “free will” at the Aaronson Oracle - ifelsehow
http://people.ischool.berkeley.edu/~nick/aaronson-oracle/index.html
======
iammer
This sequence gives a score of 0:

f f f f f f d f f f f f f d d f f f f d f d f f f d f f d f f f f f f d d d f
f f d d f d f f d d f f d f d d f f f f d f d f d f f f d f f d f f f f f f d
d d d f f d d d f d f d d d f f f d d f d d f d f f d d f f d f d d f f f f d
f d f d f f f d f f d f f f f f f d d d d d f d d d d f f d d d f d f d d d f
f f d d f d d f d f f d d f f d f d d f f f f d f d f d f f f d f f d f f f f
f f d d d d d d f d d d d f f d d d f d f d d d f f f d d f d d f d f f d d f
f d f d d f f f f d f d f d f f f d f f d f f f f f f d d d d d d f d d d d f
f d d d f d f d d d f f f d d f d d f d f f d d f f d f d d f f f f d f d f d
f f f d f f d f f f f f f d d d d d d f d d d d f f d d d f d f d d d f f f d
d f d d f d f f d d f f d f d d f f f f d f d f d f f f d f f d f f f f f f d
d d d d d f d d d d f f d d d f d f d d d f f f d d f d d f d f f d d f f d f
d d f f f f d f d f d f f f d f f d f f f f f f d d d d d d f d d d d f f d d
d f d f d d d f f f d d f d d f d f f d d f f d f d d f f f f d

~~~
roadnottaken
Explain?

~~~
etjossem
The carefully crafted (non-random) sequence above tries to fake out the script
and succeeds every time. It reveals the script's own predictability, and why
you shouldn't rely on it too much as a yardstick for testing your brain's
psuedo-randomness.

------
Practicality
I didn't press anything because it was a free will test. The instructions
tried to get me to press buttons and I refused. Free will established.

~~~
etjossem
Wait, you clicked the link?

~~~
Practicality
I also decided not to answer your question.

~~~
cjslep
I was destined to create this reply.

~~~
King-Aaron
It was fate that lead me to read your reply.

------
coldtea
Got it to _0.5991561181434598_ after a while (totally random would be "0.5").

Not sure how "free will" comes into play, if there was indeed free will, I
could have freely decided to only press one, and the Oracle would have had
close to 100% certainty.

Rather, what it measures is randomness or predictability, which is not the
same thing as free will (especially "after the fact", e.g. after the choice is
made).

~~~
loupgarou21
if .5 is completely random, what does it mean that I got it down to
0.4781666666666667? I may have gotten it lower than that, but got tired of
taking screenshots. Eventually I ended up back around .53

~~~
Dove
It means you were able to fake the algorithm out. Consider a very simple
algorithm that guesses based on your previous two characters:

    
    
      df  d
      dd  d
      fd  f
      ff  f
    

This is presumably much simpler than what the page is doing, but will
nonetheless work pretty well on humans by looking for alternations and long
runs.

This algorithm is trivially defeated (chance of guessing 0) by the string

ffddffddffdd

Since that holds a pattern just long enough to get the algorithm to guess
based on it and then switches.

For a little while, either intentionally or not, you must have been doing a
more sophisticated version of this.

With perfect knowledge, it should be possible to get it down to 0.

------
DanielStraight
You can use its own output against it. (Which means, ironically, it does not
follow "know thyself", a maxim said to be from the Oracle at Delphi.)

Fixate on a number fairly late in the sequence (the millionths place seems to
work well). If that number is 5-9, push 'f'. Otherwise, push 'd'. Keeps it
pretty consistently around 0.5.

~~~
knodi123
"To maximize your free will, press the key that the robot tells you to."

~~~
etjossem
Right! Someone please get dang to retitle this submission, so we can all
finally stop equating free will with unpredictability.

~~~
wetmore
It's a joke. From the github page:

> In a class I taught at Berkeley, I did an experiment where I wrote a simple
> little program that would let people type either “f” or “d” and would
> predict which key they were going to push next. It’s actually very easy to
> write a program that will make the right prediction about 70% of the time.
> Most people don’t really know how to type randomly. They’ll have too many
> alternations and so on. There will be all sorts of patterns, so you just
> have to build some sort of probabilistic model. Even a very crude one will
> do well. I couldn’t even beat my own program, knowing exactly how it worked.
> I challenged people to try this and the program was getting between 70% and
> 80% prediction rates. Then, we found one student that the program predicted
> exactly 50% of the time. We asked him what his secret was and he responded
> that he “just used his free will.”

~~~
scythe
If you just type 01101110010111011110001001..., you should evade any simple
LZW-type compressor, as this string is (viewed as a radix expansion in binary)
a normal number.

------
zzrg
When I was little (and had too much free time) I memorized many digits of some
transcendental numbers. The only (semi)practical use I've found for that
knowledge, is that I can use it as a reasonably good pseudorandom stream. If
for some reason I have to choose things pseudorandomly. Pick an arbitrary
starting point in pi, and press 'd' for even digits and 'f' for odd digits, I
get around 0.49 accuracy with this oracle.

~~~
thaumasiotes
You don't need a transcendental number; simple counting has perfect entropy:

0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000...

(Granted, that _is_ a transcendental number -- the Champernowne constant for
base 2 -- but there's no real need to think of it that way.)

~~~
Bognar
This sequence seems to settle right around 50%:

    
    
      var simulateKeyPress = function(character) {
        var evt = document.createEvent("KeyboardEvent");
        evt.initKeyEvent ("keypress", true, true, window,
                          0, 0, 0, 0,
                          0, character.charCodeAt(0)) 
        document.body.dispatchEvent(evt);
      };
      
      var num = 0;
      var loop = function() {
        console.log(num);
        var binary = num.toString(2);
        num++;
        for(var i = 0, len = binary.length; i < len; i++) {
          simulateKeyPress(binary[i] == '0' ? 'd' : 'f');
        }
      };
      
      setInterval(loop, 100);

~~~
thaumasiotes
It might sound weird, but I actually found that more readable as three lines
of code. :/

------
bumbledraven
An idea I shared on "Can you behave randomly? (1998)"
([https://news.ycombinator.com/item?id=11753194](https://news.ycombinator.com/item?id=11753194))
seems relevant here.

The keypresses I entered were not predictable by the Oracle. I generated the
keypresses by first picking an arbitrary integer in [0,59]. I then (using
simple mental arithmetic) used that integer to seed a PRNG by George Marsaglia
[1] to generate a stream of pseudo-random decimal digits. For each digit, if
it was in [0,7], then I took the 3-low order bits of its binary
representation, in order from least significant to most significant bit (0=f,
1=d). If the digit was 8 or 9, I discarded it. The PRNG I used has period 59,
and only 20% of the output digits would have to be discarded. Therefore one
could use this approach to generate up to 141 pseudo-random bits.

[1] Marsaglia, George. "How to generate random number sequences (in your
head)"
[https://groups.google.com/d/msg/sci.math/6BIYd0cafQo/Ucipn_5...](https://groups.google.com/d/msg/sci.math/6BIYd0cafQo/Ucipn_5T_TMJ))

~~~
avip
Can't you invoke a simpler random generator? Let's say primes % 4 ?

~~~
bumbledraven
Do you have any references on the statistical properties of the primes % 4
sequence? When converted to coin flips, primes % 4 fails the statistical
randomness tests at
[http://faculty.rhodes.edu/wetzel/random/mainbody.html](http://faculty.rhodes.edu/wetzel/random/mainbody.html)

See results at [http://imgur.com/iaHBNNr](http://imgur.com/iaHBNNr) ("Your nth
attempt" is primes % 4, "Coin nth attempt" is the Marsaglia PRNG). Note that
primes % 4 has too many runs, its prob(H given H) is too low, and its prob(H
given T) is too high.

~~~
avip
It was meant to be read a question, not statement ("are you aware of a simpler
PRNG I could pull from the top of my head, using basic arithmetics?").

Maybe a collatz sequence?

You're right, apparently it's called Chebyshev's bias.

~~~
bumbledraven
I'm not aware of a simpler PRNG. It took me quite a search to find
Marsaglia's.

------
amasad
At first I was stuck at ~0.95 but I was just striking the keys really fast but
then I concentrated and looked at the keys and really tried to feel which key
I wanted to press and it worked. I was able to score lower ~0.4. I'm
computationally irreducible for now.

~~~
paulgb
Well, if your score is .4, a computer could predict you with .6 accuracy just
by predicting what you will press and then guessing the _opposite_ :)

~~~
Vraxx
but how does it know to use the opposite for him and not for other guesses? I
make a similar mistake when I try to remember something by noting "it's not
the choice I'm naturally inclined to choose, it's the other one". After I get
used to using that heuristic, the correct choice becomes the one I'm naturally
inclined to do, but then I have trouble remembering "is it the choice I'm
inclined to do or the opposite". I've since ditched that heuristic when I
realize I'm doing it because it is quite detrimental.

~~~
amasad
That's the trouble with game theory-like heuristics. To a layman like me it's
unclear how many times do you want to recursively apply it.

The 2/3 of the average guess game is an interesting illustration where if you
take the game theory approach and recursively apply it you'll end up with 0
all the time:
[https://en.m.wikipedia.org/wiki/Guess_2/3_of_the_average](https://en.m.wikipedia.org/wiki/Guess_2/3_of_the_average)

------
lotharbot
I was able to hang at around 0.5 by remembering something I'd read on HN about
identifying non-random strings because they did too much alternating and not
enough repeating.

Instead of trying to pick randomly between f and d, I picked numbers between 0
and 9, with an intentional bias toward lower numbers, and those would
determine the length of the next sequence. So if I picked 4, 3, 7, 1, 3, 2, 2,
5, 0, 4 as my numbers, that would translate to

ddddfffdddddddfdddffddfffff[0=don't change]ffff.

I suspect a more sophisticated program would be able to pick apart my
strategy, but it worked really well against this particular algorithm.

------
Flimm
It got to 1 immediately and stayed at 1 no matter what I did. Either this is a
very impressive future predicting machine or there's a bug.

.... Turns out it was because I was pressing the wrong buttons on my Dvorak
layout keyboard!

~~~
tgb
This makes sense. The only reason you'd use Dvorak is if you had no free will!

------
smoyer
I counted up from 0 in binary (excluding leading zeroes) and even with a
completely predictable series, it only did slightly better than 50%. I was
expecting more (that on-line game of 20 questions was freaky good).

~~~
schoen
The explanation of how it works says it uses 5-grams to predict the next bit,
so if you use any sequence in which all 6-grams occur equally often, this
won't be able to predict you at all.

Actually, an interesting challenge might be to construct a sequence that gives
the Oracle as low a score as possible (is there a nicer simpler way to
describe this than simulating the Oracle's code and always choosing what it
doesn't expect?).

~~~
ikeboy
Always choose the one that makes a new 6-gram, or that makes a 6-gram with the
fewest previous appearances?

~~~
schoen
Sure, is there an easy way to generate that algorithmically without
maintaining an explicit history? Is there a well-known sequence with that
property? Do Gray codes have it, for example?

~~~
ikeboy
You'd want a sequence that contains every 6-gram exactly once and ends with
the same 5 digits as it starts with: such a sequence would be 2^6=64+5=69 bits
long, and then you'd repeat the first 64 over and over. (Or just contains
exactly once up to cycles.)

Some searching tells me this already has a name, see
[https://en.wikipedia.org/wiki/De_Bruijn_sequence](https://en.wikipedia.org/wiki/De_Bruijn_sequence)

So yes, just take a De Bruijb sequence B(2,6) (algorithms in the link can
generate them) and repeat it.

~~~
schoen
Nice!

------
colanderman
I got it down to 0.51-something by simply switching keys iff the measure
increased. Ironic, since I was exhibiting no "free will" by following that
rule :)

~~~
SilasX
I did that too and it worked for a short while, but then started increasing
without bound. I wish it would list the record as you go.

~~~
colanderman
1.0 is a fixpoint of that strategy! Since increasing values cause you to
switch keys, and continually switching keys is perfectly predictable.

------
teaman2000
Well, it's less about your 'free will' and more about one's inability to
generate a random number.

I'm not going to take the time to test it, but if you flipped a coin before
each key press, this algorithm would eventually get to 50% accuracy. But in
the short term it would probably be <50%, because it assumes it won't actually
get random input.

~~~
tedsanders
Actually, if a player is flipping a coin, it is literally impossible to design
an algorithm that has expectation other than 50%. Even in the short term, it
cannot have an expectation that's <50%.

~~~
Tomte
Sklansky tells in the Theory of Poker that you need to be unpredictable when
deciding whether to call a possible bluff, and "tune" it to the cards that are
known.

So you may need to make a yes-no decision where you decide on yes about 65% of
the time, when you consider lots of those decisions.

His solution? Glance at your watch. Divide the current minute into
proportionate parts. See in which part the seconds hand is standing.

------
jff

      dd if=/dev/urandom count=1024 bs=1 | xxd -b
    

Then I hit "d" for 1, "f" for 0 as I read through the bytes of output. It
stuck around 0.5 the whole way, which is what I expected.

~~~
Drdrdrq
Ok, so it works. Did you try to input the letters you chose by yourself?

~~~
jff
Yeah, I was also somewhere around 0.5-0.6 after a minute or so, then got the
idea to try truly random numbers

------
ernesto95
I wrote a timer in the developers console that logged either f or d depending
on whether Math.random() was above or below 0.5 every second, typing the
sequence that was being logged, the oracle consistently scored around ~0.4.

------
grondilu
Being predictable does not mean you have no free will.

I mean, ever heard of _compatibilism_?

[https://en.wikipedia.org/wiki/Compatibilism](https://en.wikipedia.org/wiki/Compatibilism)

~~~
visarga
From a physical point of view, free will doesn't make sense. Laws are
deterministic at macro level and contain some randomness at the lower level.
Neither are free will.

Also, there is a huge assumption there - the assumption that there is a "self"
that can have this free will. There is no self, just a stream of experiences
and actions. The "self" is an intuitive concept, a reification that is useful
in social dealings. Taking it from the social context and putting it in the
realm of physics could be just a sleight of language - it cannot be the same
concept in both domains, because the two domains are so far off. And trying to
formally define a self in physics is impossible for us.

~~~
drdeca
From a physical point of view, what are experiences?

------
zkhalique
"Press the 'f' and 'd' keys randomly. As randomly as you can. I'll try to
predict which key you'll press next. 0.4893617021276598 A rolling mean of my
accuracy in predicting what key you'll press."

So does that mean it's not able to predict with more than 50% accuracy?

------
carapace
Um. This is a scientific "psychic-o-meter".

[https://en.wikipedia.org/wiki/Chaitin's_constant](https://en.wikipedia.org/wiki/Chaitin's_constant)

------
kurttheviking
0.49 -- for me it helped to close my eyes and picture a random bit stream
(0=d, 1=f) rather than try to force my hands to "act randomly"

------
MarkPNeyer
What happens if i open the source code for this, run it in node, get the
probability of guessing f or d, and then guess the one that's lower?

This is like showing someone an elaborate mirror, and saying, "See? My copy of
you does exactly what you're doing to do! You don't have free will!"

All you have to do is put another mirror in the middle and show them that it
doesn't work as they claim.

~~~
GTP
Your premise "open the source code for this, run it in node, get the
probability of guessing f or d, and then guess the one that's lower" goes
straight against the explicit request to try to type randomly, everything that
follows althoug may be correct doesn't apply here.

~~~
ncallaway
Choosing to ignore the rules as prescribed is a great demonstration of free
will.

~~~
Bromskloss
Of course, that's precisely what one would predict a user to do.

------
JoshTriplett
I had a professor who, when playing games where the best move was to choose
randomly (for instance, in a CCG, forcing the opponent to discard a card from
their hand that you designate without seeing their hand), would always roll a
die or otherwise mechanically randomize their choice, to ensure that they
never exhibited potentially exploitable patterns in selection.

------
cgag
I've been relaying the quote from the readme for years. If you didn't click
through:

"In a class I taught at Berkeley, I did an experiment where I wrote a simple
little program that would let people type either “f” or “d” and would predict
which key they were going to push next. It’s actually very easy to write a
program that will make the right prediction about 70% of the time. Most people
don’t really know how to type randomly. They’ll have too many alternations and
so on. There will be all sorts of patterns, so you just have to build some
sort of probabilistic model. Even a very crude one will do well. I couldn’t
even beat my own program, knowing exactly how it worked. I challenged people
to try this and the program was getting between 70% and 80% prediction rates.
Then, we found one student that the program predicted exactly 50% of the time.
We asked him what his secret was and he responded that he “just used his free
will.”

------
timelincoln
I find this way more entertaining than I should

~~~
timelincoln
is this determinism's idea of a joke? that I should enjoy marveling at my own
lack of free will? (did what I just say even have meaning?)

------
talles
What this have to do with free will? It's a web page trying to infer the logic
behind the user keystrokes. That's it.

Maybe there's some randomness lying deep down in what we experience as free
will, but that doesn't mean that we're 100% unpredictable in everything we do.

~~~
wmf
There are some physicists running around saying that free will is defined as
acting randomly even though that's at odds with philosophical and common sense
definitions of the term.
[https://en.wikipedia.org/wiki/Free_will_theorem](https://en.wikipedia.org/wiki/Free_will_theorem)

------
clock_tower
This is pressing two letters, and you're explicitly told to press them in a
way which feels random (which is going to be culturally determined). Aristotle
would say that this is about habit, not free will -- unless you're opting to
ignore the instructions.

~~~
CamperBob2
Can you elaborate on how one's perception of randomness is subject to cultural
bias? You do have to realize that frequent runs of repeated characters are
expected to appear in a truly random sequence, but that's more a matter of
basic reasoning (or perhaps education) than culture.

~~~
clock_tower
"FFFFFFFF" or "DDDDDDD" are random sequences if they're generated by a random
process, but we [note: I wonder who 'we' means] expect "random" to mean
"frequently changing" or "chaotic-looking".

This might easily be more about formal education in statistics than about
culture, though. I'd expect people from any culture we know about to have the
intuitive expectations I mentioned -- identifying randomness with chaos.

~~~
ikeboy
Not quite
[https://en.wikipedia.org/wiki/Algorithmically_random_sequenc...](https://en.wikipedia.org/wiki/Algorithmically_random_sequence)

------
metaxy2
Seems to me there's two ways of doing this:

1\. Totally clear your mind of the previous letter and make each letter a
separate decision. That way you only have to avoid being biased toward using
one letter or the other too much. This is probably pretty hard.

2\. Allow yourself to be aware of your previous answers, but thwart your own
biases by including patterns that cancel them out.

I went with the second option and consistently got between .45 and .55. I know
our main bias around randomness is not realizing how many runs and patterns
exist in truly random data. So I occasionally included runs like "fff" and
"dddd" and, rarely, patterns like "dfdf" and "fdfd."

~~~
bobbles
Or assign a letter to each side of a coin and start flipping

------
rwallace
I failed to exercise free will in this case.

Free will is in play as and to the extent that my future is determined by my
decisions, rather than by other factors beyond my control. For example, if I'm
walking down the street, I have free will in the matter of whether I go North
or South, but not in the matter of whether I go up or down.

I tried typing some letters because I was curious to see what the output would
be. But for some reason, the page didn't work on my browser; no output was
produced. Thus, my attempt to exercise free will was foiled.

------
zepto
No explanation given of how this has anything to do with free will.

~~~
RangerScience
Click through to the github

------
Netcob
When I get to look at the average I can keep it under 0.5 if I change the key
every time the number goes up (and I keep pressing the same key if that
strategy stops working).

As arguments against free will go... I think people with no short-term memory
make a pretty solid case. You'd think with all the complex activity in our
brains we'd at least behave a little randomly based on some chaotic processes,
but without your short-term memory you begin to sound like a broken record.

------
mkagenius
I am stuck at around 0.76.

I think its flawed - Whatever I press it never changes by more than 1%

How can the prediction for 'f' be 0.764 and for 'd' be 0.763 - they don't add
up to 1.

~~~
tedsanders
It isn't telling you the odds of what you'll do next. It's telling you how
often its hidden predictions been right so far. So if you've hit 100 keys, and
it secretly guessed 75 of them right, it will display 0.75. The more you play,
the more slowly this number moves, because each additional guess has a smaller
effect on the overall average.

~~~
coldtea
> _The more you play, the more slowly this number moves, because each
> additional guess has a smaller effect on the overall average._

Not exactly, seems to be a running average with a specific window.

------
tehrei
It's pretty good, got me at 0.76. It seems you can switch patterns to make it
go down, but if you just mash f and d it rises pretty quickly.

------
lucraft
It's not very good, it's hovering around 0.5, which I think means it's
guessing about as well as chance?

Also it's broken in Safari.

~~~
thesmok
It doesn't work in Safari because they used arrow syntax for JS function,
which is not supported in Safari: ` () => { `

------
cygnus_a
It's simple to get it down to 50%. Don't try to be random. Watch the whites,
and beat them with reds, game theory style.

------
firasd
For a sense of urgency, imagine you're Manny Pacquiao and trying to hit Floyd
Mayweather without resorting to this predictable series of left-right punches
[https://www.youtube.com/watch?v=fZklifGarQc](https://www.youtube.com/watch?v=fZklifGarQc)

------
scottlocklin
Strictly speaking, this is a Shannon Oracle:
[http://programmers.stackexchange.com/questions/245008/why-
di...](http://programmers.stackexchange.com/questions/245008/why-did-shannons-
outguessing-machine-beat-hagelbargers)

------
mattfredfry
I chose not to press either button. The ultimate act of free will! (Just
kidding, I got stuck around 0.63)

~~~
Normal_gaussian
I'm on mobile.

My choice was taken away from me.

------
willfire1993
[http://imgur.com/qREH4Jh](http://imgur.com/qREH4Jh) I guess I'm pretty
random. I don't know what using your free will has anything to do with this.
In fact, this may be the opposite of free will.

------
mangeletti
0.5072463768115938[1] but only did it for about 2 minutes (don't want to ruin
my keyboard). That seems basically like it's unable to predict.

1\. [http://cl.ly/2c1R1X0z262i](http://cl.ly/2c1R1X0z262i)

------
willfire1993
[http://imgur.com/qREH4Jh](http://imgur.com/qREH4Jh) I guess I'm pretty
random. I don't think this has anything to do with free will, in fact, I think
this is the opposite.

------
lomnakkus
I realize that this is just a lark, but I just want to state for the record
(as it were) that "free will" is such an ill-defined concept that _any_ result
from this is wrong _and_ right at the same time. So there.

------
gopher2
Pressing in between the keys so I randomly hit both of them was the only way I
could be unpredictable. That got a 4.9. Pressing back and forth trying to act
as "random" as I could I stayed around a 7.8. Cool experiment

------
arielweisberg
Seems odd to call it free will. If you were 100% deterministic then sure you
have no free will, but predictable, even very predictable is not the same as
having no free will.

Has anyone done a control test with an RNG to see what happens?

------
cfallin
This is just a branch predictor!

It would be interesting to play with more modern branch prediction algorithms
(e.g., Andre Seznec's recent work) with the same interactive interface. I
haven't seen anyone do this before...

------
moultano
I started reading "Quantum Computing since Democritus" recently, the book that
inspired this, and it is fantastic. Highly recommended if you like an
entertaining walkthrough of some pretty heavy theory.

------
emmelaich
See also

[http://www.nytimes.com/interactive/science/rock-paper-
scisso...](http://www.nytimes.com/interactive/science/rock-paper-
scissors.html)

------
Houshalter
Also see this version: [http://www.loper-os.org/bad-at-
entropy/manmach.html](http://www.loper-os.org/bad-at-entropy/manmach.html)

------
learc83
I didn't have a coin on my so I started tossing my keys on the floor and
picking a letter based on the direction of the largest key. Ended up
predictably around 0.5

------
fao_
I got mine up to 0.8~ and decided to spend some time trying to out-predict the
machine and get my score lower. I got it down to 0.6 before it got really
difficult

------
ars
I got 0.62 I guess that means I'm not perfectly random.

------
ianopolous
The following strategy seems to result in consistently 50% or less, typically
~45%: If it got the previous guess correct, swap the key, otherwise keep the
same.

------
zellyn
It didn't show anything until I pressed a bunch of keys. Then it came up at
0.3-ish. Then climbed to just around 0.5. I guess I'm fairly random.

------
eli_gottlieb
I keep hitting both keys at the same time (from my point of view), but
apparently I'm 80% predictable.

What, does the IRQ for 'F' fire first or something?

~~~
kqr
I'm not sure there has to be anything odd going on. If you hit both keys at
the same time, you can never produce the same letter three times in a row –
which is extremely predictable!

------
Animats
I get 0.50877 after a while. What's the big deal?

------
zekevermillion
We are rational beings, shouldn't we expect to have trouble being random? But
wait, does that mean I don't have free will?! Aargh!

------
dicroce
0.52. The whole time I was trying to disconnect control of my fingers from my
brain... Trying to get my hand to just do what it wants.

------
dsr_
0.375 -- I guess I'm not perfectly random.

~~~
mkagenius
Does 0.375 has same randomness as 0.625?

------
ElijahLynn
Can't help but compare this to the American elections, 2 choices, republican
or democrat.

This algorithm should work on that as well... :(

------
jjoe
If you're left handed, use your right hand. And vice versa. I scored around <=
0.3 consistently.

~~~
TallGuyShort
Good one. Right handed when really just typing as fast and supposedly as
randomly as I can, it was at 0.99 and continuing to converge to 1. Left-handed
(especially if I switch which fingers I use occasionally), I was < 0.4.

------
rdiddly
I have pi memorized to a fair number of digits, so I decided to try that.

d 3 times f 1 time d 4 times etc.

... and got 50% almost exactly.

------
stcredzero
Can this be used for game AI? I think it could. I wonder if people could apply
this to games like Tennis? Or maybe to approaches to the basket in Basketball?

I am using KeePass 1.31's Random Password generator with minus and underline.
The oracle is getting 59%. Hmm. Also, when I generate a 64 character string
with two possible characters, KeePass claims I have 72 bits of entropy. Hmmm!

------
tangled_zans
I What would it mean, statistically, if it's getting it right less than 50% of
the time?

------
jobigoud
It says "My last guesses (most recent at bottom):"

But the most recent guess is at the top.

------
lisper
Man, that's an awful lot of code to do something so conceptually simple.

------
betenoire
displaying the accuracy changes my behavior. I'd like it to log the
prediction, result, and accuracy, and after a set number of configurable
presses, it displays the report summary.

------
x86pgmer
I tried pressing l and q repeatedly, I liked those letters better....

------
gravypod
I'm at 54%, does that mean I can get a job at google as a PRNG?

------
recursive
I freely choose to be predictable. Randomness is not free will.

------
tener
Wish there was a mobile version. Can't play it on my phone.

------
avip
Got the dude down to 0.4 by invoking pi. Pretty good predictor!

------
andrewprock
I got it to .41 predictability. Does that mean I am a demigod?

------
Tomte
Got to 0.5000000000000001 and decided to stop there. :-)

------
vox_mollis
Fairly consistently between .50 and .55 here.

------
camiller
0.47058823529411764 is the first number to appear, kept it in the .5 to .57
range for the next 50 or so presses ... got board.

------
cabron11
fddffdddfffddfdffddfdfddffdfdfddfdfdfddffdfdfdfddfffddffddddffdfd

------
return0
that's it. i have no free will.

------
cabron11
ffddfdfdddffddffddfffdddffdd

------
haddr
for me it's below 0.5

------
pmyjavec
next...

------
BucketSort
So. I have done a similar thing for a while now. I call it adversarial
selection. I ask a participant(p) to guess a number [1,10] repeatedly. After
they guess a number, I immediately tell them my guess of their selected
number. Immediately after I guess they are instructed to make a new guess and
tap the table indicating they have picked a number. The point is to go through
these generations very fast.

Often what I'll observe is they try to mimic a random distribution by
selecting a number far away from their last selection, but sometimes they
somehow catch on and start saying things like the same number (rare) or a
number close to it. This gets interesting because they usually start cycling
between picking a number far away and close, but they do so with a particular
pattern. I'm able to guess their numbers well beyond a random distribution,
and it all comes down the the idea that they are trying to make a random
number or trick me, which produces a blueprint of behavior.

~~~
jameshart
"I ask a participant(p)"

Good forward planning to allocate a variable to hold a reference to the
participant in case you need to refer to them later in the story, though in
this case it turned out not to be needed. I need to start doing this in
anecdotes. "So I was chatting with a colleague (C), and he mentioned..."

~~~
JoshTriplett
I was responding to a Hacker News comment (H), and it said...

------
hmm0a7fa8b60683
0.38 [http://i.imgur.com/edu115W.png](http://i.imgur.com/edu115W.png)

~~~
highd
I have an algorithm that can guess that sequence right 62% of the time then ;)

------
vacri
33% after it started responding and I got bored after 20 or so more attempts.
I imagine it'd train up higher over time.

But I have to agree with the posters who say that free will and predictability
are not the same thing.

------
sickbeard
It says it will predict which key I will press next but it doesn't say which
key it's predicting. is it f or d?

------
emblem21
It guesses what key you'll hit next. It has a naive assumption of when I will
hit it next. (Eventually)

~~~
coldtea
So?

~~~
emblem21
This means the algo only works in serial contexts, not in parallel ones.

~~~
coldtea
It's written in a browser running Javascript, so by definition is only works
on serial contexts. Plus, the key switches on your keyboard would give you at
most 2 signals in parallel (f and d).

