+ 1

# The Gambling Machine Puzzle

An entrepreneur has devised a gambling machine that chooses two random variables x and y that are uniformly and independently distributed between 0 and 100. He plans to tell any customer the value of x and to ask him whether y > x or x > y. If the customer guesses correctly, he is given y dollars. If x = y, he’s given y/2 dollars. And if he’s wrong about which is larger, he’s given nothing. The entrepreneur plans to charge his customers $40 for the privilege of playing the game. Would you play?

5 Answers

0

The answer is: we should play it. When x>70.7, choose x>y and otherwise, then the expected award is 40.3, slightly larger than 40.
Here is the example of the solution code (the key is how to find out this best decision threshold).
https://code.sololearn.com/c0WIs9iH32HX/?ref=app
Since some modules are not available in this palyground, please run the code here:
https://trinket.io/python3/e2fc570179?start=result
It takes a while to get the result. If you can't or don't want to run the code but want to see the results directly, here is the plot:
https://python3-5.trinket.io/python3-generated/6z4lhaor/trinket_plot.png

+ 11

I won't play because there is around 65% chance of losing money.
Check this code (https://code.sololearn.com/W5aCpYIKGboq/?ref=app). After playing once, click the "Analyse" button to check the chances of winning/losing money.

+ 3

Please solve this puzzle using your program skills. The challege is not coding the gambling machine, but to do some analyses and make your decision based on your analyses. This challege needs some programming skills and some analytical skills, just like the technical qestions you will have in your job interview.
Tips:
(1) consider a threshold. If x > threshold, then choose x > y; if else, then choose x < y.
(2) do some simulation to find the expected loss/gain of each bet at current threshold. You can generate a large amount of random data and calculate the mean value of the gain.
(3) Consider a series of threshold: for each threashold, do (1) and (2). So for each threashold, you will have a expected loss/gain.
(4) Based on the result of (3), you should be able to find the best threshold that give you the best gain, and you will see if there is a range of the threshold that the gain is positive. You should play if the gain is positive for some threshold, and you should use the best threshold in the play.
Example code will be given later.

0

Go and try it yourself!
https://code.sololearn.com/cIQaE0umE8S2/#py

0

I revisited my logic here. it looks like it is possible to make some money, but it doesn't come easy
https://code.sololearn.com/c06uDvoA22iJ/#py