I love games, and I love game theory. Recently Spantree started doing lightning talks, which gave me the chance to share some of my favorite group "games".
Two Thirds Game
In this game, each person submits an integer between 0 and 100. The winner is the person who picked a number closer to two thirds of the average of all submitted numbers.
Strategically, you can reason that no one will guess above 66, as that is 2/3 of 100, the maximum possible guess.
But, if no one guesses above 66, you should not guess above 44. This continues on until the only logical guess is 1. A simple strategy and a simple conclusion.
The Pirate Game
The pirate game is a little more complex. In this game, everyone represents pirates, that can be strictly ordered in terms of seniority.
After finding 100 gold coins, the pirates must divide up the gold. The most senior pirate proposes a plan. If at least half the pirates, including the most senior, approve the plan then it is followed. Otherwise, that pirate is thrown overboard, and it moves on to the next pirate.
Working backwards, we can see that the most senior pirate makes out incredibly well. If it gets down to the last two pirates, the most senior of them will simply give themselves all the money, and the other pirate none. In our case, there were 7 participants, so we can call the pirates A - G, with A being the most senior.
Pirate G will do anything to prevent it from passing to Pirate F, so Pirate E can simply give Pirate G a single gold to secure their vote, taking the 99 other pieces for themselves. From here, Pirate F will take anything to make sure it doesn't pass to Pirate E, so Pirate D needs only offer them a single gold. Working upwards, we see the logical, ideal solution is Pirate A with 97, Pirate C with 1, Pirate E with 1, and Pirate G with 1.
People Aren't Rational
When we actually followed through, the results were far different from what we expected.
In the first example, the average ended up being 22. Some people followed the process of multiplying the maximum by 2/3 only twice, and guessed 44. Others followed that pattern many times, and got closer to 5 or 6. But, only the people who anticipated both actually succeeded.
In the pirate game, Jonathan, acting as senior pirate, initially suggested 50% for himself, which was quickly met with cries of dismay. He quickly lowered his share to 35%, and was able to reach a narrow agreement doling out the rest more or less equally.
It doesn't matter that mathematically, the 2/3 game should always be 1. It doesn't matter that logically, Jonathan should have been able to keep 97 coins. Because in the end, you would have lost either game if you went the pure logic route. Instead, you need to anticipate others wants and emotions. Even after explaining the pirate game, few people would accept only 1 coin, as they still felt cheated.
Similarly, in order to successfully develop software you need to take into account the emotional and human account. It is not just the experience that is technically correct, and software is far more than a collection of features. Though the perfect combination of human appeal and technical excellence is rare, it is worth striving for.
Kevin is a Senior Software Engineer, and the primary math nerd. After brief stints in physics and academic math, he realized the creation of things was just as important as the theory, and became a full time programmer. Possessing a hodge podge of tools for any job, he particularly enjoys Clojure, Elixir, Kotlin, and pretty much every data store in existence.
If you ever want to math out, Kevin would love to talk about cryptography, algebra, graph theory, or number theory. In his spare time, his preferences and hobbies tend to change with the moon, but generally board games, RPGs, and some form of creation lie at the heart of them all.