Settings

Theme

Predicting one of 2 characters you will randomly press

github.com

20 points by aram 10 years ago · 24 comments

Reader

sctb 10 years ago

Recent discussion: https://news.ycombinator.com/item?id=11824164

throwaway2016a 10 years ago

For me it is pretty consistently 50% +/- 5 even after a minute. It doesn't seem to work well if you repeat the same key a lot (i.e don't flip to often).

  • overlordalex 10 years ago

    This is actually due to a psychological thing where humans don't find long strings of repeated letters/digits "random" and hence will flip more frequently than you'd expect from a machine.

    I also recall there being a problem in the use of 5-grams which lead to a sequence in which it guessed 0%, but I'm struggling to find it now.

    • js8 10 years ago

      If you would find the sequence I describe in my other comment, I think you would almost get that result, because you would (except at the beginning of the sequence) always pick the k-gram that has been seen one time less.

  • widforss 10 years ago

    This is definetly not working. I'm certain that one can write a program like this, but I'm consistenly getting 50 % even though I use different strategies every time.

  • oneeyedpigeon 10 years ago

    I got 52% after a good lot of keypresses (not sure exactly how many). I chose to not look at the screen at all during that time - I think that probably helps.

    • Forge36 10 years ago

      Mine started at 25% and worked it's way up to 54%. Which also involved me holding down keys for a few seconds. I'm not sure if it works or if Hacker New's user base is skewed towards people who are slightly better at being random. (or if that's cause by self reporting, would someone whose best was 80% want to come forward?)

      Edit: Interesting tidbit: I pre-seeded at 100% by holding down F and it trended down to ~68% before I decided I shouldn't spend too much time on this. Maybe we didn't use it long enough?

    • udkl 10 years ago

      Anything < 50% is a fail for this program.

      There is an inherent 50% probability of each character occurring next. i.e if you were to guess randomly, you would be right 50% of the time given enough trials.

    • LoSboccacc 10 years ago

      got it down to 50% but then started learning or I started focusing, it went as up as 56% before I got bored

andrezsanchez 10 years ago

I did something like this a long time ago in a little competition for beating others' rock paper scissors programs, except I used the other players' moves relative to my own (e.g. my program could catch on to the other player choosing the move that would beat my last move) as well as their current pattern of winning or losing.

vorotato 10 years ago

It works if you're trying to be random, however if you're trying to react and respond to its patterns you can win.

rohanprabhu 10 years ago

So, I tried a simple python one-liner:

[os.urandom(1)[0] < 128 for x in xrange(0, 100)]

and typed 'd' for True and 'f' for False in the array, bringing the accuracy of the predictor down to 53%. Theoretically, I'm guessing doing it for large enough numbers should make it exactly 50%.

  • mikeash 10 years ago

    If it doesn't come down to 50% for sufficiently large numbers, you've found a break in your OS's urandom and someone is about to be famous!

dzdt 10 years ago

Doesn't work from my smartphone. Sounds like a fun challenge though, would like to try.

  • pi-rat 10 years ago

    Seems like it's written using ES6 syntax, which many browsers can't handle yet. Safari stopped at a lambda ( () => ) here.

  • amake 10 years ago

    I'm on OS X with Firefox 47.0.1 and it doesn't work for me either :(

    • justinsaccount 10 years ago

      I'm on OS X with Firefox 47.0.1 and it works fine. It doesn't display anything until the 6th keypress.

      • mikeash 10 years ago

        Doesn't work in Safari for me, but it does work in Chrome (after pressing keys six times).

        • justinsaccount 10 years ago

          Yeah, it uses this style function definition (ES6?) in a few places:

            document.addEventListener("DOMContentLoaded", () => {
          
          Safari doesn't support that.
js8 10 years ago

Is there, for a given k, an easy to remember sequence (easy to remember algorithm with little state) that has all the k-grams with the same frequency?

For k=1: 01 repeating

For k=2: 0011 repeating

For k=3: 00010111 repeating

tokenizerrr 10 years ago

Very cool. Am getting ~50% accuracy so I'm glad to see my free will is still intact!

andrewclunn 10 years ago

40%? Lame.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection