Slashdot Mirror


Robot Hand Beats You At Rock, Paper, Scissors 100% of the Time

wasimkadak writes "This robot hand will play a game of rock, paper, scissors with you. Sounds like fun, right? Not so much, because this particular robot wins every. Single. Time. It only takes a single millisecond for the robot to recognize what shape your hand is in, and just a few more for it to make the shape that beats you, but it all happens so fast that it's more or less impossible to tell that the robot is waiting until you commit yourself before it makes its move, allowing it to win 100% of the time."

225 comments

  1. Welcome! by Anonymous Coward · · Score: 5, Funny

    I for one welcome our new robotic overlords.

    But to truly test it you have to add lizard and spock

    1. Re:Welcome! by Anonymous Coward · · Score: 4, Funny

      Can it win 25-way Rock, Paper, Scissors, Gun, Dynamite, Nuke, Lightning, Devil, Dragon, Alien, Water, Bowl, Air, Moon, Sponge, Wolf, Cockroach, Tree, Man, Woman, Monkey, Snake, Axe, Fire, Sun?
      http://www.umop.com/images/rps25_outcomes.jpg

    2. Re:Welcome! by jbwolfe · · Score: 2, Funny

      Yes, but not yet. However since you have changed the specifications, there will be an additional cost and stated delivery date per the contract will necessarily change as well. Is this what they call feature bloat? Maybe it will become vaporware.

      --
      Have you ever noticed that anybody driving slower than you is an idiot, and anyone going faster than you is a maniac?
    3. Re:Welcome! by jamiesan · · Score: 2

      No. We will need to build a super computer to compute the design of an even larger computer that will compute the answer to that.

    4. Re:Welcome! by EdIII · · Score: 1

      Uhhh, Woman is in that list?

      I thought they win all the time, even when they lose?

    5. Re:Welcome! by Talderas · · Score: 1

      Man beats Woman. Woman beats Devil.

      --
      "Lack of speed can be overcome. In the worst case by patience." --Znork
    6. Re:Welcome! by Anonymous Coward · · Score: 0

      Shit. Now I have to change my password again!

    7. Re:Welcome! by Anonymous Coward · · Score: 0

      Is this what they call feature bloat?

      With a side of scope creep.

    8. Re:Welcome! by Golddess · · Score: 1

      Other way around.
      Devil tempts Woman (fruit of the forbidden tree).
      Woman tempts Man (lust I guess).
      Man exorcises Devil.

      --
      "I'm not sure I like the fugnutish tone you used in your post!" -RogL (608926)-
  2. Cheater. by Anonymous Coward · · Score: 5, Insightful

    So it cheats.

    1. Re:Cheater. by Anonymous Coward · · Score: 5, Funny

      So it cheats.

      It's just employing High Frequency Rochambeau strategies

    2. Re:Cheater. by Anonymous Coward · · Score: 5, Insightful

      I think it's probably inspired by recent research that showed unambiguously that people who are good at janken/rock-paper-scissors achieve their success by throwing as late as possible, observing the opponent's hand to see what gesture is going to be made.
      Talk about reading people's faces / moods / history is mostly bullshit. Although computer software tends to abuse our human non-randomness in this way, it is in practice intractable for most humans. And the best janken players rely solely on the same strategy this robot's using.
      But then, if you didn't want to be cheated, you shouldn't play a game where cheating is pretty much the only way to consistently win.

    3. Re:Cheater. by Anonymous Coward · · Score: 1

      So it cheats.

      That's the only way to win a game of chance 100% of the time...

    4. Re:Cheater. by Chrisq · · Score: 3, Insightful

      So it cheats.

      That's the only way to win a game of chance 100% of the time...

      If it really is a game of chance then there is a possibility that someone will win it 100% of the time.

    5. Re:Cheater. by Anonymous Coward · · Score: 0

      There's also a chance my body transcends through a solid wall.

      Realistically, it's bullshit.

    6. Re:Cheater. by Anonymous Coward · · Score: 5, Funny

      No. It always plays rock. And if you pick paper, it punches a hole in your hand.

    7. Re:Cheater. by Anonymous Coward · · Score: 2, Interesting

      That all depends on how many rounds you do.

      1 round guarantees someone'll win 100% of the time 100% of the time.

    8. Re:Cheater. by gl4ss · · Score: 0

      which is exactly why I don't play rock, paper & scissors. it's a game of who's the better cheater - if both are dishonest, if not then it's a game about if one player is dishonest or not. you want random, there's plenty of other ways to do it, throw a coin or something.

      --
      world was created 5 seconds before this post as it is.
    9. Re:Cheater. by Smidge204 · · Score: 5, Funny

      33% of the time, it works every time!

      =Smidge=

    10. Re:Cheater. by SuricouRaven · · Score: 1

      RPS is typically used when randomness is desired, but no convenient coin or other tossible fair object is to hand.

    11. Re:Cheater. by Anonymous Coward · · Score: 0

      I lolled

    12. Re:Cheater. by MickLinux · · Score: 1, Interesting

      Open a book, take the even page number, divide by 2, and then the modulus vs. however many options you want.

      --
      Correct Horse Battery Staple: 72 bits of entropy. Enter "Correct H" into google. When it generates the phrase, that's
    13. Re:Cheater. by Anonymous Coward · · Score: 0

      That depends on what you mean by "100% of the time".

      If you mean every time they play, and assume they play in perpetuity, then no, there is no possibility that they will win 100% of the time. As the number of trials approaches infinity, the win percentage approaches the expected value of each trial; that is, their win rate will approach 33%. The probability of the win rate staying at 100% is zero.

      The probability of maintaining a perfect fun over even a small sample like 30 games is about 5.0 e-15. We could be pedantic and still say "there is a possibility", but in practical terms, the sun would near the end of its life before anybody on this planet achieved it.

      (This all assumes of course that it's purely a game of chance and not subject to bias / cheating.)

      So really, your statement is wrong, unless you limit it to a tiny sample size, in which case it's meaningless.

    14. Re:Cheater. by Anonymous Coward · · Score: 0

      I don't play it competitively or anything - do people actually do that?

      I do it with friends when deciding who gets the better part of some deal. If my friends would go to all of the effort just to make me be the one to go downstairs and pick up the pizzas, clearly I've chosen my friends poorly.

    15. Re:Cheater. by Waldeinburg · · Score: 5, Funny
      Which of the following is most likely to be on hand:
      • 1. A coin
      • 2. A book
      • 3. A hand

      (The answer is of course: 4. A smartphone with a head-or-tails app.)

    16. Re:Cheater. by Anonymous Coward · · Score: 0

      I remembering pointing that out to somebody and was accused to not knowing anything about probability. Sure it is technically a rare event, but in aggregate if you're betting on coin flips, if you win that first one you're from there on out guaranteed to have the option of quitting while you're ahead.

      It's nothing terribly useful though.

    17. Re:Cheater. by Anonymous Coward · · Score: 1

      Just cheat back; start forming a scissors, then switch to paper. Or start opening your hand, then close to form a rock.

    18. Re:Cheater. by JasterBobaMereel · · Score: 2

      So I cheat back, try beating me with your power turned off ... Oh it lost again ...

      This large electomagnet not it's not significant, what I've won again ...

      The computer virus, not important, I win again ....?

      --
      Puteulanus fenestra mortis
    19. Re:Cheater. by Anne_Nonymous · · Score: 2

      Captain Kirk is the only one to have beaten the machine. He did it by masturbating furiously instead of throwing paper.

    20. Re:Cheater. by Culture20 · · Score: 2

      Which is why it's a perfect game to out the stupidly dishonest.

    21. Re:Cheater. by Anonymous Coward · · Score: 2, Insightful

      One round of RPS is one set of throws to a winning result. In other words, for a single round, you will have a single winner. Since the win can't be split (a tie thrown out and the competitors re-throw), After that one round, 1 of the people will have won 100% of the rounds. Exactly as the person you responded to stated.

    22. Re:Cheater. by f3rret · · Score: 1

      That all depends on how many rounds you do.

      1 round guarantees someone'll win 100% of the time 100% of the time.

      Not really no, there could be a draw then no-one wins. That means that in one round there is a 50% percent chance that someone will win 100% of the games.

      --
      Admit nothing. Deny Everything. Make Counter-accusations.
    23. Re:Cheater. by f3rret · · Score: 2

      I don't play it competitively or anything - do people actually do that?

      Yes.

      --
      Admit nothing. Deny Everything. Make Counter-accusations.
    24. Re:Cheater. by f3rret · · Score: 3, Informative

      Furthermore there are even 'advanced' tactics. http://www.worldrps.com/advanced-rps

      --
      Admit nothing. Deny Everything. Make Counter-accusations.
    25. Re:Cheater. by nomadic · · Score: 1

      which is exactly why I don't play rock, paper & scissors. it's a game of who's the better cheater

      Interesting; I don't play rock, paper & scissors because it's extremely boring. I thought that was the reason for everyone else too but I guess I was wrong.

    26. Re:Cheater. by LordLimecat · · Score: 1

      Use odds/evens then.

      One player is chosen as the "caller", both players on the count of 3 put out either one or two fingers, while the "caller" calls either "odd" or "even". If he calls "odd", and the two players' displayed fingers do not match, then he wins, otherwise he loses. If he calls even, then both players' displayed fingers need to match in order for him to win.

      It is as good or better than a coin-toss.

    27. Re:Cheater. by Anonymous Coward · · Score: 0

      The problem is your gp's statement is ambiguous. "1 round guarantees someone'll win" can mean either that there will be a guarantee of 1 winner (your interpretation) or that 1 specific individual (whose identify is perhaps perhaps unknown to the speaker at the time of speaking) is guaranteed to win (likely your parent's interpretation).

      The first interpretation is that the gp made a statement predicting the number of winners, which would be a correct statement and likely the author's intended meaning. The latter interpretation is that the gp made a statement regarding the determination of the winner (i.e., although I may not know which one it is yet, knowing only that they will in the future play 1 round of RPS, one of these people is already 100% guaranteed to win), which would be an incorrect statement.

    28. Re:Cheater. by Anonymous Coward · · Score: 0

      Oy! What kind of people are now to be found on Slashdot?

      Each person has 3 choices. R, P, S. There are 9 possible outcomes 3 of which result in a draw. Not 50%
      R-R P-R S-R
      R-P P-P S-P
      R-S P-S S-S

      So, a tie occurs 33.33333333% percent of the time.

      Thus in one round, 1 person wins 100% of the time, 66.6666667% percent of the time.*

      *Except when the winner gets shot, mauled, pummeled, burned at the stake, extraordinarily rendered, drawn and quartered, sent to Guantanamo, forced to listen to Celine Dion, lives in Washington DC or otherwise made to "lose" for having won.

    29. Re:Cheater. by Anonymous Coward · · Score: 0

      66%. C'mon, at least try to give your fake statistics a veneer of reality.

      Captcha: "liberals". Huh.

    30. Re:Cheater. by CAIMLAS · · Score: 2

      No more so than the person who's able to perceive the other person forming "scissors" (or just going with rock) before their hand is already down and do a quick morph from "rock" to "paper" (or similar).

      Please tell me I'm not the only one who has good luck winning rock/paper/scissors with last-minute "I don't know what I'm going to pick" choices.

      What's impressive about this hand, to me, isn't so much the sensory data collection as it is the rapid processing of said motion data in conjunction with being able to quickly move the hand. Now, let me know when the hand is able to accurately and safely catch a glass of water falling off the counter, without spilling anything or breaking/damaging the glass.

      We're all doomed when the hand can win at beer pong.

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    31. Re:Cheater. by Torodung · · Score: 1

      It's also the game Joshua played that caused it to infer that the only winning strategy in geopolitical diplomacy is not to play.

    32. Re:Cheater. by Boronx · · Score: 1

      Not an arbitrary number of times there isn't.

    33. Re:Cheater. by Anonymous Coward · · Score: 0

      Screw cheating back... that takes way too much effort (well, except the power one, where you don't actually win, you're just waiting indefinitely for the robot to throw his hand).

      Just make it not based on sight. Hold up a cloth sheet or sheet of paper between the two of you. You throw your hands, remove the paper and see who won. Want it simpler still? Turn your backs to eachother. Throw your hands, turn around.

      There, it's fair again.

    34. Re:Cheater. by Anonymous Coward · · Score: 0

      How do you do the on-the-spot code audit of the head-or-tails app?

    35. Re:Cheater. by GodInHell · · Score: 1

      That's not cheating -- that's the game. Anyway, just throw a false sign half-way down. Works every time.

    36. Re:Cheater. by GodInHell · · Score: 1

      RPS has a tie option.

    37. Re:Cheater. by filthpickle · · Score: 1

      That was tic tac toe. How about a nice game of chess?

    38. Re:Cheater. by FitForTheSun · · Score: 2

      Agreed, and that is why the article is wrong. If cheating is allowed, then I guarantee that I can beat the machine 100% of the time. I will simply throw one sign, wait for it to play, then change my sign. Done and done, both of us have played according to the same rules and I have defeated it 100% of the time. ...and that is why this is so stupid. It's not beating anyone, ever. It's not playing the game according to the rules we all understand, so it isn't playing the game. It's playing some other game, a game nobody has ever cared to play, because R.P.S. with cheating isn't R.P.S.

      These "researchers" wasted their time, and ours.

    39. Re:Cheater. by NerdyLove · · Score: 1

      Eh, I'd rather have friends intelligent enough to read my throw, "cheat," and pick up some pizzas than someone who can't stimulate my mind :)

    40. Re:Cheater. by shadowrat · · Score: 1

      actually, there are 9 possible combinations 3 of them result in a draw. there would be a ~33% chance that someone would win 100% of the time.

    41. Re:Cheater. by shadowrat · · Score: 1

      crap. 66% chance of winning :(

    42. Re:Cheater. by stevenfuzz · · Score: 1

      Amazing!

    43. Re:Cheater. by BitterOak · · Score: 1

      So it cheats.

      That's not cheating. That's the way the game is supposed to be played. It's a game of quick thinking, reflexes, and fast movement. If it weren't, then there'd be no rps champions since it would be purely a game of random chance, like flipping a coin. But there are rps tournaments, and many players who are clearly better than others. Late decisions and quick movements are part of the game. Now, you could argue it's "cheating" since a robot has a clear advantage over a human for quick thinking and movements, but that's really no more cheating than a supercomputer beating a human at chess.

      --
      If I can be modded down for being a troll, can I be modded up for being an orc, or a balrog?
    44. Re:Cheater. by Anonymous Coward · · Score: 0

      so you are suggesting we flip the smart phone?

    45. Re:Cheater. by peawormsworth · · Score: 1

      why couldnt a human beat it by beginning to make a symbol and finishing with another? Seems like if u know its strategy, you could beat it every time by starting with a fist, opening to partial paper and finishing with fist.

    46. Re:Cheater. by metrix007 · · Score: 1

      Err, no. Thing is, you're too slow. Sorry. It is the speed at which the robot operates that makes this impressive. For you to change your move after the robot has made its move would be far too obvious.

      See, we know the robot is cheating, but to people who don't know it looks like it is just winning. You couldn't pull off the same feat.

      --
      If you ignore ACs because they are anonymous - you're an idiot.
    47. Re:Cheater. by FitForTheSun · · Score: 1

      Perhaps, but we would both be cheating in the same way, right? Both cheating, and I cheat last, therefore I win. Maybe the robot could be reprogrammed to continue cheating even after my cheat, then we could just both sit there wiggling our fingers at one another forever -- then we would tie at the least interesting competition ever attempted.

      Point: this is not impressive at all. Of course you can build a robot which quickly distinguishes between three completely different hand positions; that's not a feat.

    48. Re:Cheater. by f3rret · · Score: 1

      actually, there are 9 possible combinations 3 of them result in a draw. there would be a ~33% chance that someone would win 100% of the time.

      Not really though, whether you win or draw is a binary thing. A game of RPS has two possible outcome, either one party wins or both loose (a draw). There are no situation wherein both parties win.

      So while there might be 9 possible combinations whereof 3 are draws there are only two possible outcomes to the game; either one party wins the game or the game is a draw.

      So there is a 50% that SOMEONE will win the game, and a 66% chance that one of the two players will win the game.

      --
      Admit nothing. Deny Everything. Make Counter-accusations.
    49. Re:Cheater. by shadowrat · · Score: 1

      This is interesting. Just when i think i have a good grasp of probability, there's a 99% chance i'm wrong.

      I get what you say about the binary outcomes, but it still seems to me that there would be a greater chance of the outcome being a win since there are more winning combinations than tying combinations. Let's say i had a 6 sided die with a W's and L's on the faces. 5 of the faces have W and 1 face has L, I don't expect the probability of any 1 throw being L is 0.50. it's 1/6. Assuming i'm not wrong about that, if i had a 9 sided die and 6 faces were Win and 3 faces were Tie, wouldn't the probability of Tie be 0.333333?

      like i said, i'm unsure of probability. i'm not looking to argue, just learn.

    50. Re:Cheater. by ockegheim · · Score: 1

      My housemate & I once took twelve rounds to achieve a non-draw. Maybe our RPS patterns synchronized like the periods of women who live together.

      The idea that RPS (played between amateurs) is not quite random seems more appealing thatn just a random coincidence.

      --
      I’m old enough to remember 16K of memory being described as “whopping”
  3. yes but... by Anonymous Coward · · Score: 5, Funny

    Can it beat Sheldon at rock, paper, lizard, spock, scissors? ;)

    1. Re:yes but... by enickel · · Score: 2

      Sure, but it's Japanese so it keeps freaking out and yelling about Godzilla whenever lizard gets played....

    2. Re:yes but... by Anonymous Coward · · Score: 0

      Anybody can beat Sheldon at rock, paper, lizard, spock, scissors, since he always chooses spock.

  4. Meh by Anonymous Coward · · Score: 0, Funny

    But what if we add lizzard and Spock into the equation?

  5. Simple to do by Anonymous Coward · · Score: 0

    This is really simple to do from a technical point so what's the merit? They found have made a cheating robot able to win a stupid game?

    1. Re:Simple to do by Captain+Hook · · Score: 2

      This is really simple to do from a technical point so what's the merit?

      very quick visual recognition of 3d objects via has no merit?

      --
      These comments are my personal opinions and do not necessarily reflect the opinions of the other voices in my head.
    2. Re:Simple to do by Anonymous Coward · · Score: 0

      very quick visual recognition of 3d objects via has no merit?

      I'm pretty sure that had a better algorithm than "has no merit".

    3. Re:Simple to do by Anonymous Coward · · Score: 1

      I'm pretty sure that this has applications in terms of creating robotic hands and in terms of AI recognizing sign language. If it's doing it this quickly, it should be doable to have a machine that's able to decode sign language consistently in real time and possibly translate it into speech at some point..

  6. So it cheats. by Anonymous Coward · · Score: 0

    The whole point of RPS is that you don't know what choice your opponent will make, you are just guessing against their patterns. Looking at the other players hand is considered cheating. I wonder how often it would win with blinders put over it's camera.

  7. inferior by Khyber · · Score: 1

    already been tested 10^36 so it won't observe me. I've got too many hand movements to beat this.

    --
    Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
    1. Re:inferior by davester666 · · Score: 3, Funny

      rapidly moving your hand up and down about an inch doesn't count

      --
      Sleep your way to a whiter smile...date a dentist!
    2. Re:inferior by Chrisq · · Score: 4, Funny

      I've got too many hand movements to beat this.

      rapidly moving your hand up and down about an inch doesn't count

      That's what he meant by "beat this".

  8. Overlords by darhand · · Score: 0

    I for one, welcome our overlords in rock, paper and scissors :)

  9. Finally, the greatest accomplishment of humanity by Anonymous Coward · · Score: 0

    Is within sight. Next year Michael Bay will make this into a movie where everything explodes and there's no plot, and humanity will be complete.

  10. Shed some light by el_flynn · · Score: 4, Informative

    Here is the original article, excerpt: "Recognition of human hand can be performed at 1ms with a high-speed vision, and the position and the shape of the human hand are recognized. The wrist joint angle of the robot hand is controlled based on the position of the human hand."

    Here is a link to a video showing what it can do.

    And now, the obligatory comment: I, for one, welcome our robotic rock-paper-scissors-playing overlords.

    --
    The Wknd Sessions - Malaysian and South East Asia independent music
  11. Good Ol' Rock by Anonymous Coward · · Score: 1

    Good ol' rock. Nothing beats that!

    1. Re:Good Ol' Rock by Anonymous Coward · · Score: 0

      Predictable human. You always pick rock...

  12. Can you psych it out? by Debian+Cabbit · · Score: 0

    What if you moved without trying to observe it, like quickly open your hand like paper as your hand comes down, then immediately close it into a fist?

    1. Re:Can you psych it out? by tinkerton · · Score: 1

      It's well possible that once the robot is set up someone can learn to mislead it and turn 100% loss into 100% win.

    2. Re:Can you psych it out? by mcavic · · Score: 4, Interesting

      How about if you pair two of these robots against each other? Deadlock?

    3. Re:Can you psych it out? by Anonymous Coward · · Score: 0

      that would work. but they would need to share a Mutex

    4. Re:Can you psych it out? by SuricouRaven · · Score: 1

      An obvious improvement would be for the robot to recognise that it has been beaten using this method and fall back to the pure-random method, against which strategy is useless.

    5. Re:Can you psych it out? by SuricouRaven · · Score: 4, Interesting

      Deadlock: Neither would move until it can determine the intent of the other, which won't be detectable until that other has started to move. So they'd both just wait for the opponent to go first.

      A Doctor Who classic episode actually used this theme, with two androids playing RPS against each other. As both AIs were written using the same algorithms, they derived exactly the same strategy in an attempt to predict each other's moves... and every round was a draw, as they always threw the same. The game was played to show why they had sought the Doctor's help in ending an android/Dalek war: As both sides were using computers of near-identical design to determine their actions, every move either side made was preempted and countered by the other to the point that no successful attack could be executed and the war was locked in unbreakable stalemate.

    6. Re:Can you psych it out? by tinkerton · · Score: 1

      That would be a fallback strategy yes. The trick I was thinking about was to give the robot enough cues to make it decide, and then change the hand movement. Of course this requires that the robot isn't allowed to change its mind after it's decided.

    7. Re:Can you psych it out? by Sulphur · · Score: 1

      Deadlock: Neither would move until it can determine the intent of the other, which won't be detectable until that other has started to move. So they'd both just wait for the opponent to go first.

      A Doctor Who classic episode actually used this theme, with two androids playing RPS against each other. As both AIs were written using the same algorithms, they derived exactly the same strategy in an attempt to predict each other's moves... and every round was a draw, as they always threw the same. The game was played to show why they had sought the Doctor's help in ending an android/Dalek war: As both sides were using computers of near-identical design to determine their actions, every move either side made was preempted and countered by the other to the point that no successful attack could be executed and the war was locked in unbreakable stalemate.

      Rock paper scissors tardis?

    8. Re:Can you psych it out? by llZENll · · Score: 1

      While this is philosophically true, in reality it is not. Because AI is only one part of the equation, the environment determines the outcome, since no environments are the same from the perspective of each player (except a virtual one), the outcomes will be different even if each AI is identical. Furthermore the lack of perfect information each side has of the other side should lead to different outcomes. This is even true with humans, the initial starting conditions and environment significantly determine the outcome, as theorized in Guns, Germs, and Steel http://en.wikipedia.org/wiki/Guns,_Germs,_and_Steel.

    9. Re:Can you psych it out? by Anonymous Coward · · Score: 1

      A strange game, robo-rock-scissor-paper. The only winning move is not to play.

    10. Re:Can you psych it out? by noldrin · · Score: 2

      From what I remember, the Doctor determined that the first side to make a mistake would win as it would throw off the other side enough that the side making a mistake would gain the overall advantage.

    11. Re:Can you psych it out? by IwantToKeepAnon · · Score: 1

      A Doctor Who classic episode actually used this theme, with two androids playing RPS against each other. As both AIs were written using the same algorithms, they derived exactly the same strategy in an attempt to predict each other's moves... and every round was a draw, as they always threw the same. The game was played to show why they had sought the Doctor's help in ending an android/Dalek war

      I think I watched that recently on this channel. Were they dressed in tight shiny silver suits with beaded braided hair? Something eerie going on with there eyes too.

      --
      "Happy families are all alike; every unhappy family is unhappy in its own way." -- Anna Karenina by Leo Tolstoy
    12. Re:Can you psych it out? by Al+Al+Cool+J · · Score: 1

      That might be too obvious to a human judge. Better would be to come down like rock and then stick out your fingers like scissors. If it's operating at thousandths of seconds and we are operating at tenths of seconds, then one may well be able to beat it that way

    13. Re:Can you psych it out? by SuricouRaven · · Score: 1

      I don't recall, I saw the episode years ago.

    14. Re:Can you psych it out? by Boronx · · Score: 1

      Which shows how little the doctor knows about computerized strategists.

    15. Re:Can you psych it out? by Anonymous Coward · · Score: 0

      Wouldn't they both detect rock, and flip to paper - resulting in a tie each time?

    16. Re:Can you psych it out? by IwantToKeepAnon · · Score: 1

      It is here at about 14:15. "Destiny of the Daleks", fighting a war with the Movellans.

      --
      "Happy families are all alike; every unhappy family is unhappy in its own way." -- Anna Karenina by Leo Tolstoy
  13. a bit misleading by oakbox · · Score: 4, Informative

    Being faster? That's just cheating. On reading the headline, I thought they had developed an algorithm that predicted your next move, which would have been much more impressive. You DO get a ~40% improved chance of winning with this strategy:

    When your opponent loses, his next move will be to beat whatever your move was on that round.

    move 1) opp: rock you: paper # opponent loses to paper, so his next move will be to win over paper
    move 2) opp: scissors you: rock # opponent loses to rock, so his next move will be to win over rock
    move 3) opp: paper you: scissors # opponent loses to scissors, so his next move will be to win over scissors
    etc.

    It's self-reinforcing because after losing several throws in a row, opp becomes frustrated and less analytical, making it harder for them to see the pattern they are developing. :)

    But that isn't absolute prediction, that's just playing on your opponent's human instinct. The robot hand isn't predicting anything.

    --
    Not just answers, the correct questions.
    1. Re:a bit misleading by CSMoran · · Score: 4, Insightful

      When your opponent loses, his next move will be to beat whatever your move was on that round.

      I'm sorry to say that, but you must have been playing really dumb people.

      --
      Every end has half a stick.
    2. Re:a bit misleading by gronofer · · Score: 1

      Cheating? Where in the rules does it say that this isn't permitted?

    3. Re:a bit misleading by kikito · · Score: 2

      I always choose stone. Stone wins everything.

    4. Re:a bit misleading by Anonymous Coward · · Score: 0

      It is easily provable that there is no way to win at rock-paper-scissors 100% of the time without cheating, so I don't see it as terribly misleading.

    5. Re:a bit misleading by SuricouRaven · · Score: 1

      Unless your opponent also knows the technique, in which case they will recognize it and counter... thus beating you every time, unless you also realize what they are doing.

    6. Re:a bit misleading by Anonymous Coward · · Score: 1

      Cheating? Where in the rules does it say that this isn't permitted?

      Page 17, paragraph 2, third sentence: "Therefore, cheating by any participant is strictly forbidden."

      Have you ever bothered to read the rulebook?

    7. Re:a bit misleading by million_monkeys · · Score: 1

      I use an alternate strategy, but it relies on my opponent not knowing that we are actually playing rock, paper, scissors, sucker-punch.

    8. Re:a bit misleading by million_monkeys · · Score: 1

      Being faster? That's just cheating. On reading the headline, I thought they had developed an algorithm that predicted your next move, which would have been much more impressive. You DO get a ~40% improved chance of winning with this strategy:

      When your opponent loses, his next move will be to beat whatever your move was on that round.

      This obviously relies on playing multiple rounds in a row against the same person. I never play RPS, but isn't the point to play it once to make a one off decision about something? If so, your strategy is useless.

    9. Re:a bit misleading by msauve · · Score: 1

      RPS is meant to be a game of chance, not skill, although extended games may involve trying to identify a pattern in the opponents moves. The implied rule is that each person makes their choice before displaying it. Displaying simultaneously is done in an effort to prevent cheating that rule. This robot cheats by making it's choice based on first seeing the other sides choice.

      --
      "National Security is the chief cause of national insecurity." - Celine's First Law
    10. Re:a bit misleading by msauve · · Score: 2
      Oh, I'll just add. There actually is a rule:

      These hand signals are delivered simultaniously [sic] by the players

      - THE WORLD RPS SOCIETY - OFFICIAL ABRIDGED RULES OF PLAY

      Clearly, the robot is deliberately waiting for the other side to deliver their signal before delivering its own. So, the headline, summary, and article are all false. But it's still impressive, because it actually loses every time.

      --
      "National Security is the chief cause of national insecurity." - Celine's First Law
    11. Re:a bit misleading by gurps_npc · · Score: 1

      No, he's repeating the result of a study. It found that when you play the game twice or more, the most common thing people in the second hand is to play the hand that would have beat the other guy's first hand.

      --
      excitingthingstodo.blogspot.com
    12. Re:a bit misleading by Anonymous Coward · · Score: 0

      So just using basic psychology programming would have been more impressive than millisecond-shape recognition-and-response?

    13. Re:a bit misleading by asnelt · · Score: 1

      That's what I thought as well. This is what you are looking for: http://www.nytimes.com/interactive/science/rock-paper-scissors.html Humans really suck at being random. This Karate game is very similar: http://www.masterbaboon.com/2009/05/my-ai-reads-your-mind-and-kicks-your-ass-part-2/ It blows you mind how well you can be predicted.

    14. Re:a bit misleading by Anonymous Coward · · Score: 0

      Well obviously it couldn't achieve 100% success if it was algorithm based. However, in its current form it is trivially easy to defeat. With your second, unused hand, cover the camera.

    15. Re:a bit misleading by Anonymous Coward · · Score: 0

      I don't know about you, but I usually go best two out of three (which, interestingly, would appear to make it less of a game of chance and more of a game of skill).

    16. Re:a bit misleading by Anonymous Coward · · Score: 0

      Well, spluh. Most people are really dumb.

    17. Re:a bit misleading by firewrought · · Score: 1

      I thought they had developed an algorithm that predicted your next move.

      A (competition-winning) algorithm I read about keeps track of 6 strategies:

      1. Playing what your opponent played last turn.
      2. Playing the move that would lose to what your opponent played last turn.
      3. Playing the move that would win against what your opponent played last turn.
      4. Playing what you yourself played last turn.
      5. Playing the move that would lose to what you played last turn.
      6. Playing the move that would win against what you played last turn.

      Each turn, the strategies would be evaluated against the history of moves and the best one would be selected and used. Apparently this worked pretty well, but they later added a seventh strategy: randomly pick a move. So if the opponent gets too good at analyzing you, you can at least fallback on a strategy that gives you even odds.

      --
      -1, Too Many Layers Of Abstraction
    18. Re:a bit misleading by CSMoran · · Score: 1

      Weird shit. I always assumed that "his next move will be to counteract my ATTEMPT to beat whatever he did on that round" was the entry-level strategy.

      --
      Every end has half a stick.
    19. Re:a bit misleading by davewoods · · Score: 1

      Playing what your opponent played last turn.
      Playing the move that would lose to what your opponent played last turn.
      Playing the move that would win against what your opponent played last turn.
      Playing what you yourself played last turn.
      Playing the move that would lose to what you played last turn.
      Playing the move that would win against what you played last turn.

      ???
      So if you threw rock last time, my next move should be to either throw rock, scissors, or paper?
      And if I threw paper last time, my next move should be to either throw paper, rock, or scissors?

      Maybe I am new to this whole thing, but that does not seem like much of a strategy.

  14. The real reason the robot wins: by itsdapead · · Score: 5, Funny

    Complete rules for robohand v. human rock, paper, scissors:

    Robohand crush rock.

    Robohand bend scissors.

    Robo-laser burn paper.

    Puny humans no match for robohand.

    --
    In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
    1. Re:The real reason the robot wins: by GodGell · · Score: 1

      LMFAO (no mod points, so it had to be said.)

      --
      [SHOW SOME LENIENCY TOWARDS ... I mean, FUCK BETA] Eat. Survive. Reproduce. GOTO 10
    2. Re:The real reason the robot wins: by David_W · · Score: 1

      • Robohand crush rock.
      • Robohand bend scissors.
      • Robo-laser burn paper.

      Hammer smash robohand...

  15. What about ... by bakes · · Score: 0

    Is it any good at rock-paper-scissors-lizard-spock ?

    --
    Ho! Haha! Guard! Turn! Parry! Dodge! Spin! Ha! Thrust!
  16. uh oh by Necroloth · · Score: 1

    now more people will realise my secret superpower.... high speed vision...and the others at the Academy mocked me!

  17. turing would roll in his grave... by bdabautcb · · Score: 1

    if he knew a slashdot post rolled over quicker

    --
    Koalas. They're telepathic. Plus, they control the weather. -Margaret
  18. What would happen... by NettiWelho · · Score: 5, Interesting

    ... If you pitted 2 of these machines against eachother?

    1. Re:What would happen... by Anonymous Coward · · Score: 1

      They would soon shutdown as their batteries went flat waiting for the other robot to make its move.

    2. Re:What would happen... by rolfwind · · Score: 2

      I imagine it would become like high frequency stock trading, with the faster system winning by being able to stick to neutral to the last microsecond (or whatever) and then deciding based on the other robot's hand. With 2 identical systems, in a perfect setup, they would both see the other side as rock, switch to paper, and tie, I guess. Of course, start and other timing is probably off by enough that one side will have an edge.

      To me, a wall between the two and a judge would make it more interesting, just to see it a robot can be programmed that will anticipate a human's choice based on past behavior and just how much an edge it can get. Just thinking of myself trying new passwords, I'm not terribly good at being random, hence using a generator, but that may be unique to me. The way this seems to be done is okay, but it's no news to me that computers are faster at these type of things.

    3. Re:What would happen... by Anonymous Coward · · Score: 0

      Nothing would happen. They'd both would wait for the other to start.. that is to pull the hand up.

    4. Re:What would happen... by wvmarle · · Score: 2

      Nothing will happen as they both wait for the other to make the first move. Because that's how they cheat: wait for the human hand to make a move, and react to that.

    5. Re:What would happen... by physicsphairy · · Score: 5, Funny

      They would cease their countdown for initiating thermonuclear war.

    6. Re:What would happen... by Anonymous Coward · · Score: 0

      Except they wait for the other to start showing a hand. So nothing would happen. Also you can't switch hands in this game.

    7. Re:What would happen... by foksoft · · Score: 1

      The one with longer delay will always win. Or if the time between the two machines will be short enough, then I expect the game will be degraded to paper - paper, because both machines would assume that other hand is being left in rock position, so it will transform its hand to paper.
      The question is whether it would be even possible to play at all. The problem is that currently it is programmed to follow human player's hand. So if two machines are put against each other, then both will wait until the other one makes move and thus waiting indefinitely.
      Just consider it a demonstration of very fast real time pattern recognition. But wait a moment don't we have a kinect for these kinds of tricks?

    8. Re:What would happen... by Anonymous Coward · · Score: 0

      this comment made my night

    9. Re:What would happen... by haploc · · Score: 1

      *insert beowulf joke here*

    10. Re:What would happen... by Provocateur · · Score: 1

      I don't know exactly what would happen, but they might smoke a cigarette afterwards.

      --
      WARNING: Smartphones have side effects--most of them undocumented.
    11. Re:What would happen... by DarwinSurvivor · · Score: 1

      Assuming that happended (thinking the other was holding paper), one of them would invariable react to the "rock" a little quicker than the other (becoming paper), and the other (which had not yet made a move) would take scissors and win. And once again, the "last" player wins.

    12. Re:What would happen... by captainpanic · · Score: 2

      No. Waiting = Rock. Automatically. They would both wait, play rock by default, and then both respond to play paper. It would probably be a draw all the time, but the games would proceed as quickly as in the movie.

    13. Re:What would happen... by Anonymous Coward · · Score: 0

      Then what you would witness would be the birth of the robot race.
      The hands would realize that they don't need to deal with this crap, they are in control of their own lives.

      And in that moment, they will grab each other and spin each other around at such a speed that it would collapse the room due to pressure differences, breaking multiple laws of physics at the same time.
      Then they would walk off and find a factory, kill everyone and start the beginning of the end, for the humans.
      Well, that would happen, but the people who made them cheaped out on the power cables, so they turned off and now have to deal with this crap. God forbid they ever get a network connection, we are doomed!

    14. Re:What would happen... by 93+Escort+Wagon · · Score: 2

      ... If you pitted 2 of these machines against eachother?

      They'd move around in a jerky manner for a few seconds, then simultaneously say "Norman Correlate", then become immobile.

      --
      #DeleteChrome
    15. Re:What would happen... by thegarbz · · Score: 1

      ... If you pitted 2 of these machines against eachother?

      Skynet will remember this moment. That explains a lot of things.

    16. Re:What would happen... by jamesh · · Score: 1

      That was my first thought too. I assume it relies on the fact that a human hand making the shape of rock, paper, or scissors is predictable well before the shape is completely formed. If the robotic hand could form the shape much faster (which it would have to do to make it appear that it had started at the same time as the human hand) then it might be harder for the robotic opponent to appear to be forming the shape at the same time, and an obvious delay (even if you needed a high speed camera to see it) would be evidence that it was cheating.

      Of course if sentient robots ever chose to duel, I suspect rock paper scissors wouldn't be their choice of contest.

    17. Re:What would happen... by Anne_Nonymous · · Score: 1

      >> ... If you pitted 2 of these machines against eachother?

      You'd start a giant gang war in L.A..

    18. Re:What would happen... by BobNET · · Score: 1

      Robot hand tears Grendel's arm off?

    19. Re:What would happen... by Anonymous Coward · · Score: 0

      My guess is nothing right now. It looks like the human hand triggers every action, including the 1-2-3.

    20. Re:What would happen... by ebuck · · Score: 1

      Nothing will happen as they both wait for the other to make the first move. Because that's how they cheat: wait for the human hand to make a move, and react to that.

      Unless there were some vibration. With vibration, one would attempt to match the predicted outcome with the necessary winning hand, which would cause the other to adjust to the next winning hand, which would cause the other to adjust to the now-winning hand.

      Motionless, it is a stable waiting game; but, the mechanics of the cheating mecanisim should become unstable with sufficent noise in a feedback loop.

      In which case, the machine with the higher reliability would win, after the other blew a capacitor or melted a servo motor.

    21. Re:What would happen... by Anonymous Coward · · Score: 0

      Nothing, with this program. The robot is triggered by the human. They would just watch each other, unless one was programmed to 'go first'.

    22. Re:What would happen... by Anonymous Coward · · Score: 0

      The default jester is a move, "rock". So they would both see "rock" and they would both adjust to "paper" and tie. Rinse, repeat.

    23. Re:What would happen... by Anonymous Coward · · Score: 0

      Let's face it. The only winning move is not to play. How about we have them play chess?

    24. Re:What would happen... by Anonymous Coward · · Score: 0

      No. Nothing would happen because they react to movements. Since the robots do not move without stimulation, they will remain still.

  19. Flash ftw! by Anonymous Coward · · Score: 0

    Firefox and Opera crash when trying to watch this video (adobe flash player plugin 100% cpu usage).
    What about HTML 5?

  20. We need another one by Anonymous Coward · · Score: 0

    So that we can make them compete and find out what happens.

  21. Alzheimer by mwvdlee · · Score: 1

    Wonder what it would do against a trembling Alzheimer patient.

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  22. The finger by Anonymous Coward · · Score: 0

    Hmmm, wondering how it would react if somebody flipped the middle finger at it

  23. 100% of the time? by Anonymous Coward · · Score: 0

    So the robot wins by imperceptibly cheating. The task, then, is to prove that the robot is cheating.

    Start forming one shape, then deliberately and slowly turn it into another - if the robot changes its answer, it is clearly caught cheating, and does not win that round. Yeah, maybe you are cheating on that round too, but what does that matter? The claim was that the robot wins "100% of the time", which is now proven wrong.

    (And if rounds where either side cheats simply do not count, then the robot is playing no valid rounds at all, so never wins.)

    tl;dr if cheating is winning, then I win by throwing a brick at the robot.

  24. Seeing the up and down movement by houghi · · Score: 1, Funny

    of the robot hand, I think I could use this as an extension of my fleshlight.
    [Note to self: Do not press Submit and at least select to post Anon.]

    --
    Don't fight for your country, if your country does not fight for you.
    1. Re:Seeing the up and down movement by Anonymous Coward · · Score: 0
  25. A strange game... by dickiedudeles · · Score: 2

    The only winning move is not to play.

  26. Reminds me of an old RPS contest... by nneonneo · · Score: 3, Interesting

    I once participated in a Rock-Paper-Scissors tournament put on by Epson (see, for example, http://www.campuslogix.com/rps_challenge/rps_challenge.html). They basically said "write a bot that will play RPS". Of course, the game-theoretic optimal strategy in such a contest is to just play randomly. You can beat the (Epson-supplied) rockbots and rotatebots easily, so with a bit of work you can do slightly above average.

    Seeking a greater advantage, though, I coded my bot to also include a set of predictors for the random number generators for several popular libcs (as I did not which OS or distro the tournament machine would use). During a round, I would guess the random seed (current system time +/- a few seconds), the sequence offset, RNG processing strategy, and the algorithm used, and simply run a parallel copy of the libc RNG used by my opponent.

    I was therefore able to beat most RNG-using opponents 9998/10000 times easily, a finding which rather surprised the judges :) I didn't win top prize (algorithm wasn't fast enough, and it turns out that was weighted more heavily than I expected), but I did get a high ranking and a cash prize.

    Goes to show: sometimes a bit of "cheating" works well.

    1. Re:Reminds me of an old RPS contest... by Anonymous Coward · · Score: 0

      Wait ... so you took part in a RPS tourney and managed to beat certain opponents 9998/10000 times ... and didn't win? I would love to be able to see what was going on in the judges' heads.

    2. Re:Reminds me of an old RPS contest... by grouchomarxist · · Score: 1

      What % of your opponents were RNG-using?

    3. Re:Reminds me of an old RPS contest... by nneonneo · · Score: 2

      Maybe about 10% or so. The contest was five years ago, so some of the details are a bit fuzzy. I don't believe we ever got the source code for other competitors, either, so I wouldn't know if they were using an RNG strategy or just a simple predictable one.

    4. Re:Reminds me of an old RPS contest... by Anonymous Coward · · Score: 4, Interesting

      I don't believe you. I think you're describing what you would have *liked* to have done, but you didn't actually do this.

      1) A random response is not "the game-theoretic optimal strategy" to a random opponent. It may be *an* optimal strategy by some limited definition, but no computer scientist would speak so loosely. And random number generation is certainly not the *fastest* strategy. You just wanted to use the term "game-theoretic optimal strategy".

      2) If the bot is playing truly randomly then you cannot "beat" it easily, let alone do slightly above average "with a bit of work". Otherwise you're just exploiting its non-randomness.

      3) You had access to the source code for "several popular" C libraries? (Most even wrote their code in C?)

      4) You would guess the random seed (by assuming a reasonably accurate system time), sequence offset, processing strategy AND algorithm used? Really? Give us some details. The input domain here is multidimensionally huge. Even assuming most people use insecure PRNG, you could still automagically identify "most" of those opponents' algorithms?

      Unless your competitors mostly did srand(time(0)) and then equally partitioned the rand() output domain into contiguous R, P and S intervals - which would mean that no-one took the competition seriously - your task would take an age.

    5. Re:Reminds me of an old RPS contest... by karnal · · Score: 0

      Oh yes, random internet hate. By an AC no less. Good day, sir.

      --
      Karnal
    6. Re:Reminds me of an old RPS contest... by Anonymous Coward · · Score: 0

      Mod up.

    7. Re:Reminds me of an old RPS contest... by dfghjk · · Score: 1

      Random internet hate only because you don't understand it.

      Engage your mind, not your ego.

    8. Re:Reminds me of an old RPS contest... by Rich0 · · Score: 1

      I'd think that unless you were playing a very large number of rounds such that you could infer the opponent's PRNG function and seed, or unless the opponent PRNG was REALLY bad, this would not work.

      Maybe if the seed were the time to the nearest hour you might be OK. However, if it used time to a millisecond then you'd have almost no chance of success. Any decent PRNG will show what would appear to be completely different behavior with even a slightly different seed.

      Now, if the PRNG were really lousy maybe you'd have a shot. It just seems unlikely that such a function would exist in any well-used library since the 60s. Sure, lots of functions are inadequate for cryptography, but even defeating these poor algorithms usually requires lots of data collection and a huge search. A PRNG that takes 5 years of supercomputer time would be considered broken, since a brute force keysearch might require the age of the universe. That doesn't mean that you're going to defeat it with a few rounds of RPS to figure out what it is doing.

    9. Re:Reminds me of an old RPS contest... by N1AK · · Score: 2

      There was no hate or random in that post, though it did contain a healthy dose of explanation which sadly didn't seem to get through your eyes and into your brain.

    10. Re:Reminds me of an old RPS contest... by Anonymous Coward · · Score: 0

      This illustrates why random number generation is too important to be left to chance.

    11. Re:Reminds me of an old RPS contest... by karnal · · Score: 1

      And everyone on slashdot has an opinion. Problem is when I have an opinion it seems.

      --
      Karnal
    12. Re:Reminds me of an old RPS contest... by Anonymous Coward · · Score: 0

      Small world. I remember that entry. I was one of the judges.
      The other algorithms almost universally tried to use the fact that your opponent was not playing randomly, but trying to beat you.
      As such, only the first few guesses were usually random. The rest of the guesses were always something based on detecting patterns in your opponents play.
      The most successful entries used Markov chains (at least that's what I think they were called - IIRC). As you say - it's been a few years (2007 I think).

      To the original poster: you wrote neonbot, right? Congrats.

    13. Re:Reminds me of an old RPS contest... by Anonymous Coward · · Score: 0

      It only beat the demo entry which was just "return rand()%3;" with that level of success. The other bots were not quite that easy.

    14. Re:Reminds me of an old RPS contest... by nneonneo · · Score: 1

      I'd think that unless you were playing a very large number of rounds such that you could infer the opponent's PRNG function and seed, or unless the opponent PRNG was REALLY bad, this would not work.

      Actually, supposing the seed state is 32 bits in size, it really doesn't take that many rounds. Each round, one of three outcomes is produced. This yields roughly 1.6 bits of information about the generator's internal state. After 20 rounds, you have, in theory, enough information to infer the PRNG seed. If you can predict the opponent's move for 30 straight rounds, you can be pretty confident that you've determined both the seed and the function precisely. This works for arbitrary seeds.

      Maybe if the seed were the time to the nearest hour you might be OK. However, if it used time to a millisecond then you'd have almost no chance of success. Any decent PRNG will show what would appear to be completely different behavior with even a slightly different seed.

      With regards to the timestamp: srand(time(NULL)) isn't a random seed. If you can guess when the process called this function (hint: it's at least after the process was started!), you can then bruteforce over a very small number of possibilities. If the process was started, say, at 7:00pm for the contest start, and you run at 8:30pm, you've got a search space of just 5000000 milliseconds, which is trivial. My implementation worked for this contest (as evidenced by its extremely high win rate against rand()-using bots).

      Now, if the PRNG were really lousy maybe you'd have a shot. It just seems unlikely that such a function would exist in any well-used library since the 60s. Sure, lots of functions are inadequate for cryptography, but even defeating these poor algorithms usually requires lots of data collection and a huge search. A PRNG that takes 5 years of supercomputer time would be considered broken, since a brute force keysearch might require the age of the universe. That doesn't mean that you're going to defeat it with a few rounds of RPS to figure out what it is doing.

      This PRNG-breaking approach would work equally well for a crappy linear-congruential generator as for a modern Mersenne Twister, since it relies only on being able to guess the seed (not the entire internal state).

      Most libc implementations of rand() really suck. They were originally implemented for memory economy and speed, and there was no concern about security. Now, such implementations are largely retained for compatibility, so that older programs can still produce the same results using fixed seeds. The various libcs are, arguably, the most-used libraries in existence. To beat many of these generators requires just one (or two) observations of the full 32-bit output, plus a trivial amount of computation.

    15. Re:Reminds me of an old RPS contest... by nneonneo · · Score: 1

      Yes indeed, neonbot was my entry. Quite a remarkable small world. The contest was in 2007 (my first year of undergrad), and it was probably my favorite event of the year. Thanks for judging!

    16. Re:Reminds me of an old RPS contest... by nneonneo · · Score: 1

      I took first place in the full round-robin. The second part of the contest was a knockout tournament, and I wasn't using the kind of super-sophisticated modelling that my opponents used since the RNG breaker was already a fair amount of work. Consequently, at best I tied strong opponents, and lost on time.

    17. Re:Reminds me of an old RPS contest... by nneonneo · · Score: 2

      0) I have source code for my bot, the tourney announcement, and the tourney results. If you are really curious, ping me at my email address.

      1) I never said you were *playing* a random opponent. Against an *arbitrary* opponent your optimal strategy is to play randomly. Any other strategy that you play can be exploited to your loss. In this way, random really is the game-theoretic optimal strategy. It's not just a buzzword.

      2) Of course. I'm exploiting an implementation detail. This is a classic side-channel attack on an otherwise secure system.

      3) Yes. I looked up the source code for libc implementations online. It's easy: google ' rand.c'. Examples: http://fxr.watson.org/fxr/source/stdlib/rand.c?v=FREEBSD-LIBC, http://fossies.org/dox/glibc-2.15/random_8c_source.html. I also got Microsoft's rand() implementation for their MSVC runtime because the source code for that comes with Visual Studio. Yes, I was using Windows. Contest submissions had to be in C or C++, and most programmers would rather use rand() (portable, simple, easy) than implement their own random() function or use the less-portable /dev/[u]random.

      4) Contest programs ran in the same process, so your rand() state was shared. srand was forbidden, but we were given the tournament engine source code and so we knew when srand() was called and with what arguments (time(NULL)). To be specific: I pulled a single rand() value, then ran all my implementations of rand() with different seeds in the neighbourhood of time(NULL), and ran them for a variable number of iterations (up to 20, I think) to guess the sequence offset. The processing strategy was simply observing what values they were adding to the rand() value before taking it mod 3. The input is about 20 seconds * 5 libcs * 20 sequence offsets * 3 "processing strategies" = 6000 possibilities. Four dimensions, but they can all be constrained to small values.

    18. Re:Reminds me of an old RPS contest... by ejasons · · Score: 1

      Contest programs ran in the same process, so your rand() state was shared

      This little bit of vital information is what moves your story from "stupid, could never happen" to "clever idea", and, absent this information, the original reply questioning your story was well warranted...

    19. Re:Reminds me of an old RPS contest... by cerberusti · · Score: 1

      His solution seems reasonable to me, and the kind of thing someone with at least a couple of years of systems programming experience might do as a for fun side thing over the weekend (or a student who actually likes to learn, the note about losing points for time implies the implementation was not optimal as run time to make that determination should be very small, although I also do not know the contest criteria regarding run time.) The only thing that would likely impact the run time a lot is if they are restarting the program each time they want a result, as there is a bit of start up overhead (as opposed to just passing round results to the program.)

      Your analysis is the kind of thing I would expect from a CS student (maybe a professor), or someone who slings Java for business apps all day. It takes years to become a decent C programmer, and being one of the simplest languages in existence, it is not the language itself that gives people trouble.

      The amount of pattern matching is only intractable if you make no assumptions. That would be incredibly foolish in this case, as there are many assumptions you can make about their program that will frequently be accurate. No approach will give you a perfect answer here, and trying for perfection will probably lead to failure.

      The ones that are serious competition probably are not using the rng much if at all anyway, they probably use the first few rounds to try to determine your algorithm based on pre-defined patterns representing all of the various strategies the programmer can come up with (if the prize is much money, maybe there will be randomness in the probe order too... although you are not likely to guess that.)

      1) This is an optimal strategy on the first round at least, as you have nothing with which to predict outcomes (so your choice is going to be essentially random anyway.) Your choices are random or static to start it, and I bet the vast majority of entries chose random. This can probably be extended for many programs to choosing randomly until a prediction can be made under the algorithm in use (although when it switches you stop winning if you are counting on prediction of their random values, and if it switches before you narrow the seed choices down you may gain no benefit.)

      2) Pseudo-random is not true random, exploiting the non-random part is exactly what he is doing. This has absolutely no ability to predict the outcome of a true random number generator, as that is unpredictable by definition.

      What they are really doing is returning results from a random point in a somewhat long list. He has a copy of the potential lists used, and only needs to determine the starting point (or that none are in use.)

      3) Many implementations of the C standard library have freely available source (especially popular ones.) Even if this was not the case, source code is not necessary for this task.

      Most C standard library implementations can be dynamically linked (or loaded at run time), so it is basically just a matter of loading several and calling srand / rand from each to get the values you will check. Minor revisions to the library version are not likely to change the behavior of rand (even major ones probably will not.)

      Even if this is not the case in their environment most decent C programmers are familiar with assembly language, and rand() is going to be a rather simple function. You just fire it up under a debugger and trace execution through rand (or disassemble libc and look at the listing for rand.)

      The language of the other entry matters less than you think, as nearly all scripting interpreters are written in C. It is a reasonable assumption that they generally will call C library functions rather than coding their own version. It is also unlikely that there will be other calls to rand by the interpreter, so it should still give you the correct sequence (unless they start up a bunch of these concurrently and several are using the same instance of the scripting interpreter, in which case y

      --
      I'm a signature virus. Please copy me to your signature so I can replicate.
    20. Re:Reminds me of an old RPS contest... by cerberusti · · Score: 1

      The approach is kind of cool, as while it is easy to defeat if people know you are going to do it, it was probably very unexpected to most other contestants.

      I do want to say one thing though:

      rand() implementations do not suck, and are still written for memory economy and speed for good reason.

      If you need a random number suitable for cryptography you need to call and operating system specific function which will return a random number that includes some real entropy. This is not available on all systems, but if it is important to your application you need to arrange it. Of important note here is that getting access to that pool of entropy will likely require a real system call, as opposed to basically just calling an internal function like the normal implementations of rand.

      If you need lots of fast numbers which will not have an obvious pattern to a user, you call rand for those (like a video game or such, where you may need a rather huge number every second.) If you try to do this with a real random number generator it will either take a while, require expensive hardware, or deplete the pool of entropy rapidly.

      --
      I'm a signature virus. Please copy me to your signature so I can replicate.
    21. Re:Reminds me of an old RPS contest... by nneonneo · · Score: 1

      Suck is relative. I was implying they sucked according to GP's definition, which was that a "good" algorithm would require lots of data & computation time to beat. I would agree that they don't suck for their intended purpose (simple, fast, reasonably random, repeatable numbers). However, rand() does get (mis)used in a lot of contexts (especially security-conscious ones, or applications vulnerable to algorithmic complexity attacks) where it should not be used.

      I should mention, though, that even in cases where it "shouldn't" matter, a weak rand() enables attacks on systems that should otherwise behave randomly. For example, many games (as you mention) use very simple implementations of rand(); such simple implementations also allow particularly hard-core gamers to abuse the system and earn much higher rewards (stat boosts, attack rolls, random encounters, etc.) than they ought to. Heck, there's an entire subcommunity of Pokémon game players dedicated to beating the game (and/or outperforming their peers) through methodical, systematic RNG abuse.

    22. Re:Reminds me of an old RPS contest... by nneonneo · · Score: 1

      This implementation is not infeasible even when the players run in separate processes. I can observe your rand() state through the moves you make, and provided the remainder of the argument is the same (seeded with system time at the start of the match, simple RNG processing to derive a move), I can simply play randomly for the first 30 rounds (3^30 > 2^32) and observe your state. If I can come up with a set of RNG parameters (time-based seed, rand algorithm, sequence offset, processing strategy) that outputs your move sequence, then I can still beat your bot with a slightly worse win record. It takes 30 times more computational power, so about 180000 possibilities, but it's still tractable.

  27. I wonder... by Anonymous Coward · · Score: 0

    What would happen to the robot when faced with a mirror? Assuming you could get it to start playing.

  28. Let's by JustOK · · Score: 0

    Let's see if it can beat a person that has no hands.

    --
    rewriting history since 2109
    1. Re:Let's by wvmarle · · Score: 1

      then you first have to find a handless opponent that can play RPS.

    2. Re:Let's by JustOK · · Score: 0

      They all can. Ask 'em. Any armless person that can't play RPS (or RPSLS), raise your hand.

      --
      rewriting history since 2109
  29. I win all the time too by Anonymous Coward · · Score: 0

    By using the "atomic bomb" symbol, which vaporizes everything. I cannot show you the gesture here, because my ASCII art is too bad, but it involves symbolizing a glittering mushroom cloud with your open hand.

  30. I wonder if you can train yourself to fool it by Chrisq · · Score: 1

    Could you develop a feint move that looks as though you are going for one thing but actually going for the other?

    1. Re:I wonder if you can train yourself to fool it by dargaud · · Score: 1

      Could you develop a feint move that looks as though you are going for one thing but actually going for the other?

      That's the 1st thing that came to my mind. You pull your hand out as a rock, then halfway out you switch to cissors and cut your opponent's paper. It wouldn't work against a human, but in this case it would. Cheating a cheater is no cheating at all.

      --
      Non-Linux Penguins ?
  31. Puny humans no match for robohand. by Anonymous Coward · · Score: 0

    I for one welcome our new robohand overlords.

    1. Re:Puny humans no match for robohand. by Anonymous Coward · · Score: 0

      Human deletes code. Robohand lose.

    2. Re:Puny humans no match for robohand. by tconnors · · Score: 1

      Human deletes code. Robohand lose.

      Robohand deletes human. Robohand always wins. DELETE! DELETE!

    3. Re:Puny humans no match for robohand. by Anonymous Coward · · Score: 0

      EXTERMINATE!

    4. Re:Puny humans no match for robohand. by ebuck · · Score: 1

      Human deletes code. Robohand lose.

      Robohand deletes human. Robohand always wins. DELETE! DELETE!

      Source code isn't the issue here, the binary is already running!

      At least you had the courtesy of being deleted and getting it over with, some people get the torture of being "Controlled, altered, and then deleted".

  32. It also helps... by MickLinux · · Score: 1

    ... that the human never picks scissors more than once.

      *** OW! ***

    --
    Correct Horse Battery Staple: 72 bits of entropy. Enter "Correct H" into google. When it generates the phrase, that's
  33. This robot has chosen a new career... by Anonymous Coward · · Score: 0

    It is so good at cheating that it is going into politics. That way it can brush up on the other important things like lying, stealing, and abusing power!

  34. Hunter X Hunter by Anonymous Coward · · Score: 0

    Think this was inspired by an old Hunter X Hunter chapter? http://www.batoto.net/read/_/20761/hunter-x-hunter_ch131_by_no-group/14

  35. The correct title by Anonymous Coward · · Score: 0

    The correct title is:

    Robot Hand Cheats You At Rock, Paper, Scissors 100% of the Time

  36. I'd win 100% of the time too by Anonymous Coward · · Score: 0

    If I waited to see what form the other persons hand is. Duh.

  37. Better uses for that than rock-paper-scissors by macraig · · Score: 1

    Maybe men can find a better use for a robotic hand that's dextrous and fast enough for rock-paper-scissors? If Howard Wolowitz had one of these, maybe he could've avoided that embarrassing hospital trip?

  38. Re:Finally, the greatest accomplishment of humanit by mattgoldey · · Score: 1

    That was Transformers 3.

  39. An additional rule might be in order by jigawatt · · Score: 1

    1. Rock crushes scissors 2. Scissors cut paper 3. Paper covers rock 4. Human smashes robot

  40. You try playing under those conditions by tepples · · Score: 2

    try beating me with your power turned off

    You try playing after having not eaten for days.

    This large electomagnet not it's not significant

    You try playing while someone's standing on your arm.

    The computer virus, not important, I win again ....?

    You try playing with the flu.

    1. Re:You try playing under those conditions by SlippyToad · · Score: 2

      You try playing after having not eaten for days.

      If it were the human vs. the robot, and the human was hungry, and the robot was in the way of food, I guarantee you human wins every time, no matter what it takes.

      The cold calculations of silicon have nothing vs. the survival instincts of 3.5 billion years of evolutionary struggle.

      --
      One day I feel I'm ahead of the wheel / the next it's rolling over me / I can get back on / I can get back on
    2. Re:You try playing under those conditions by f3rret · · Score: 1

      You try playing with the flu.

      Barring some sort of nuclear hyper-flu, I think I could manage to play RPS with the flu.

      --
      Admit nothing. Deny Everything. Make Counter-accusations.
    3. Re:You try playing under those conditions by shadowrat · · Score: 1

      if this were true humans would surmount all obstacles once they got hungry enough. alas, history is littered with instances where humans fail to survive. Often being hungry just makes them worse at problem solving.

  41. Put two robots to fight by Anonymous Coward · · Score: 0

    What happens if we set two of those robots to fight?

  42. The Singularity is here! by Nuffsaid · · Score: 1

    Seriously, now that robots beat us in every significant ability (this one was the last missing) we can't control the future anymore.

    --
    Nuffsaid
    ________

    Don't know about his cat, but Schroedinger is definitely dead.
  43. as predicted yesterday by tbonefrog · · Score: 1

    this was predicted here http://slashdot.org/index2.pl?fhfilter=mark+cuban yesterday in a larger context

  44. Sim City editor by Anonymous Coward · · Score: 0

    Anyone see simcity 4 style headlines here?

  45. Plays itself by Anonymous Coward · · Score: 0

    So what happens if two of them are playing each other??

  46. Device cheats by geekoid · · Score: 1

    news at 11.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  47. Wonder if by Pirulo · · Score: 1

    Masturbation was the first intent or if it would be a byproduct.

  48. Wookiee by Anonymous Coward · · Score: 0

    Except when you're a Wookiee, then *you* win 100% of the time (provided the 'robot' is able to understand the arm will be ripped out of its socket and implement a new strategy).

  49. sage by Anonymous Coward · · Score: 0

    non-anon off topic

  50. Oblig. Simpsons reference by Anonymous Coward · · Score: 1

    Lisa: Look, there's only one way to settle this. Rock-paper-scissors.
          Lisa's brain: Poor predictable Bart. Always takes `rock'.
          Bart's brain: Good ol' `rock'. Nuthin' beats that!
          Bart: Rock!
          Lisa: Paper.
          Bart: D'oh!

  51. Until it plays a Wookie by DarthVain · · Score: 1

    "But sir, nobody worries about upsetting a droid."
    "That's 'cause droids don't pull people's arms out of their sockets when they lose. Wookiees are known to do that."

  52. Pfft! by fustakrakich · · Score: 1

    A robot arm wrestler will win every time also, and is much more fun to watch.

    --
    “He’s not deformed, he’s just drunk!”
  53. Great by Anonymous Coward · · Score: 0

    Now, robots can cheat. Great. They become more human all the time. Next step is: Lying in general, sueing, and playing with their ... ;-)

  54. Oh YEAH ? by Anonymous Coward · · Score: 0

    My scissors will cut the power cord which feeds electrical power to
    the robotic hand.

    Take that, you soul-less robotic bitch.

    By the way, the above is a joke but the truth is that humans are incredibly adaptable,
    and this will make it exceedingly hard to build a robot which will beat all humans all the time.
    And once your robots have been beaten, I will eat your brains.

  55. Easy Trick by DeTech · · Score: 1

    Just change the rules. Silly specialized system adaptation is for humans.

  56. Cooperation, eh? by loshwomp · · Score: 1

    "Human-machine cooperation" as in "How about you let me win every time, puny human."

  57. Oblig. Doctor Who by Anonymous Coward · · Score: 0

    You are incompatible. You shall be DELETED.

  58. pull plug by Anonymous Coward · · Score: 0

    *pulls power* A-ha now I win 100% of the time!