Comment

Comment by omoikane

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/i...

parent omoikane 3 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton