{"id":255,"date":"2006-06-20T17:57:37","date_gmt":"2006-06-20T06:57:37","guid":{"rendered":"http:\/\/www.somethinkodd.com\/oddthinking\/2006\/06\/20\/unsolved-puzzle-algorithmic-thief-assignment\/"},"modified":"2006-06-20T17:57:37","modified_gmt":"2006-06-20T06:57:37","slug":"unsolved-puzzle-algorithmic-thief-assignment","status":"publish","type":"post","link":"https:\/\/www.somethinkodd.com\/oddthinking\/2006\/06\/20\/unsolved-puzzle-algorithmic-thief-assignment\/","title":{"rendered":"Unsolved Puzzle: Algorithmic Thief Assignment"},"content":{"rendered":"<p>I learnt a new <a href=\"http:\/\/www.cheapass.com\">Cheapass<\/a> card game recently. It was an interesting and thought-provoking game, but I am not going to talk about the game-play today. I am going to talk about the initial set-up, and an unsolved puzzle it brings up.<\/p>\n<h3>Introduction to the Game Set-Up<\/h3>\n<p>Reverse-engineering the requirements, the game developers needed everyone to start with three equivalently-valued chips or tokens that are exchanged with other players thoughout the game. They also needed exactly one of the players to be secretly nominated with a special role (they arbitrarily call it the &#8220;Thief&#8221;). If the Thief spends their last chip, the game is over.<\/p>\n<p>The simplest solution to nominating the thief is to deal out a short deck of cards equal to the number of players (I think it works with four to nine players) and the person who receives the Joker takes on the Thief role.<\/p>\n<p>The game developers at Cheapass have optimised this slightly. <\/p>\n<p>Firstly, they use the Ace of Spades instead of the Joker &#8211; presumably because some decks don&#8217;t have Jokers.<\/p>\n<p>Secondly, they eschew chips, and instead deal three cards per player. The person with the Ace of Spades takes on the Thief role, and then the cards are used as chips. The thief should only spend the Ace of Spades as the last card (and hence end the game). If the card was given to another player in the middle of the game, the thief&#8217;s identity would be revealed, so it shouldn&#8217;t be done..<\/p>\n<h3>The Problem<\/h3>\n<p>The downside to this system is that the thief can accidentally reveal themselves by being cautious about which cards that they exchange. Similarly, non-thieves can give away their status by being cavalier about which cards they use.<\/p>\n<h3>Conventions Can Help<\/h3>\n<p>There are a couple of partial solutions that can be adopted by the players. <\/p>\n<p>The first is to enforce a strict rule that, once play starts, cards must remain face down. This system is subject to both accidental and malicious reveals.<\/p>\n<p>A similar method is a convention of how to place the thief card (always the leftmost card in your hand, or always the bottom of the pile on the table) and which card to spend (always the rightmost card in your hand or always the top card on the pile). In practice, the non-thieves forget to follow this convention strictly, even though it reduces the chances of both them and the thief that they will win.<\/p>\n<h3>The Puzzle: An Algorithmic Solution?<\/h3>\n<p>Here&#8217;s the puzzle:<\/p>\n<p>Either come up with an function, <code>f<\/code>, that satisfies the following requirements, or prove that such an function is impossible:<\/p>\n<ul>\n<li>Each player is assigned publicly known unique number, <code>n<\/code>, in the range <code>1..N<\/code>, where <code>N<\/code> is the total number of players.\n<\/li>\n<li>Each player is randomly dealt three random cards, <code>c1, c2, c3<\/code> from a short-deck of <code>3N<\/code> cards.\n<\/li>\n<li>Each player is given the same publicly known function, <code>f({C1,C2,C3},n)<\/code> &#8211; that is, the function takes a set of three cards and the player&#8217;s number. It returns a boolean.\n<\/li>\n<li>No matter how the cards are dealt, when they are substituted into the function, it shall only return <code>True<\/code> for one player, and <code>False<\/code> for the others.\n<\/li>\n<li>Each player is equally likely to be dealt the combination that returns <code>True<\/code>.\n<\/li>\n<li>It shall not be possible to determine the result of <code>f<\/code>, without knowing all three card values. That is, knowing any two of the three cards belonging to a player shall not allow another player to determine the result of <code>f<\/code>.\n<\/li>\n<\/ul>\n<p>I&#8217;m pretty sure that the algorithm is impossible, but I haven&#8217;t finished proving it yet.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I learnt a new <a href=\"http:\/\/www.cheapass.com\">Cheapass<\/a> card game recently. It was an interesting and thought-provoking game, but I am not going to talk about the game-play today. I am going to talk about the initial set-up, and an unsolved puzzle it brings up.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_s2mail":"","footnotes":""},"categories":[33],"tags":[],"class_list":["post-255","post","type-post","status-publish","format-standard","hentry","category-puzzle-solving"],"_links":{"self":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts\/255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/comments?post=255"}],"version-history":[{"count":0,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts\/255\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/media?parent=255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/categories?post=255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/tags?post=255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}