5 ms·
The prediction algorithm is actually very straightforward[1]. It's a fun exercise to write a sequence generator specifically to defeat it. Here is a sequence
by omoikane 3y ago
The prediction algorithm is actually very straightforward[1]. It's a fun exercise to write a sequence generator specifically to defeat it. Here is a sequence that can get the prediction rate down to 13%:
ddddd dfddd dffdd dfdfd ddfff ddfdd fdffd dffdf ddfff fdfdf
dfffd ffdff fffff dffff ffddf fffdf dfffd ffdff ffffd ddfff
Generated using this Perl script:
my %table = ();
my $s = "fffff";
for(my $i = 0; $i < 100; $i++)
{
if( $i % 5 == 0 )
{
print $i % 50 == 0 ? "\n" : " ";
}
my $output;
if( exists $table{$s} )
{
# Output opposite of what would be predicted.
$output = $table{$s}{"f"} > $table{$s}{"d"} ? "d" : "f";
$table{$s}{$output}++;
}
else
{
# No prediction yet. Original source defaults to "f", so we will
# output "d".
$output = "d";
$table{$s}{"d"} = 1;
$table{$s}{"f"} = 0;
}
print $output;
$s = substr($s, 1) . $output;
}
print "\n";
If you can type carefully, increasing the length to 200 brings the prediction rate down to 10%.
[1] https://github.com/elsehow/aaronson-oracle/blob/master/src/index.js https://github.com/elsehow/aaronson-oracle/blob/master/src/i...
- quickthrower2 3y agoThe creator knew you would do that...
- sublinear 3y agoPlease elaborate.
- fsckboy 3y agoyou wouldn't do anything else
- zakki 3y agothat is part of the 'free will'
- quickthrower2 3y agoJust a joke. If I explain it it becomes unfunny.
- boothby 3y agoYou can improve that by around 13% if you soften the inequality (your > should be >=, I believe) table = {} s = 'ddddd' for i in range(100): if i%5 == 0: print(s) state = table.setdefault(s, {'f':0, 'd':0}) s = s[1:] + ('f' if state['f'] <= state['d'] > 0 else 'd') state[s[-1]] += 1
- fsckboy 3y ago>The prediction algorithm is actually very straightforward[1]. It's a fun exercise to write a sequence generator specifically to defeat it. if you are inspecting the prediction algorithm, and you want to specifically defeat it, doesn't that mean copy the prediction algorithm and throw a "not" on it? It's the old halting problem trick...
- _notreallyme_ 3y agoYou should indeed try and target a 50% accuracy rate.
- fsckboy 3y agomaybe I don't understand, 50% is the goal? when I played I thought % was how often it predicted what I pressed, and even though 0% is 100% wrong which is 100% right in a parallel universe, it would still represent me winning. in any case, my post was serious, regardless of the % number, if you are inspecting their algorithm and writing your own, I can't understand why you wouldn't use theirs in yours. Finding an isomorphism might be fun, but it's not necessary.
- withinboredom 3y ago50% means it is "no better than random" while 0% means it is accurately predicting what you won't press and 100% means it is accurately predicting what you will press.
- brvsft 3y ago> it is accurately predicting what you won't press That is not what it's predicting. You have changed the definition of predict so that an incorrect prediction can be misinterpreted as a correct prediction.
- withinboredom 3y agoIf you have two choices ... and I always predict the wrong one ... another way to say that is: "I always predict the one you won't choose." If I can't actually predict which one you choose, then statistically, I should be right 50% of the time.
- mcv 3y agoAre you saying you just automated free will in such a simple algorithm?
- baetylus 3y agoThis goes deeper than we thought.
- ozfive 3y agoYeah, check out the book "Bursts" https://barabasi.com/book/bursts https://barabasi.com/book/bursts
- datameta 3y agoThey automated the intent from their free will
- mensetmanusman 3y agoFree will is 50%, this is ultra will.
- gjsman-1000 3y agoEven better; if you just type the first 7 blocks: ddddd dfddd dffdd dfdfd ddfff ddfdd fdffd That's only 10%.