18
$\begingroup$

I just invented the following riddle, doing statistics work. (I actually need the answer!)

Riddle:

Imagine a dice game with the aim of throwing the highest dice. The dice are special and have infinite sides with numbers ranging from 0 to 1! (uniform, no bias)

There are 2 players: Player-A has 3 dice to throw, player-B has 7 dice. This means player-B has a chance of 7/10 of winning, which is to throw the highest number of all 10.

Now, to bring fairness to the situation, the players agree to multiply each number thrown by player-A by a certain constant. What is the value of this constant, so that each player has a 50% chance of winning?

Can you find a general formula to determine this constant, based on the amounts of dice the 2 players have?

(And in case this is a known problem: Do you know how this is called?)


Considerations/ Spoiler: The adjustment-constant does not just depend on the ratio of throws (3:7 in this case); instead, the absolute number is important. For example, if the players had 300 and 700 throws, then this constant would be much closer to 1.

My intuition: I think a good estimate is to assume a homogeneous distribution of the throws: For example the 3 throws are at decimals 0.25, 0.5 and 0.75! Now the highest number would be 0.75! Do the same with player-B and you get the ratios of the expected highest numbers (-> the adjustment-constant). Unfortunately that's just my intuition and I am not sure if this is correct.


EDIT: I am thankful for all the answers but surprised that nobody used an approach similar to my described one. For completeness, here I explain where I was wrong:

I assumed the expected maximum of throws would be 1-1/(n+1), which is correct, as simulated by the following script:

import numpy as np import matplotlib.pyplot as plt

x,y,y2 = [],[],[] for n in range(1,21):
    x.append(n)
    y2.append(1-1/(n+1))
    temp = []
    for _ in range(10000):
        sample = np.random.random_sample(n,)
        temp.append(max(sample))
    y.append(np.mean(temp))


plt.scatter(x,y) 
plt.plot(x,y2) 
plt.title("Mean max = 1/(n+1)")     
plt.xlabel("Number of throws") 
plt.ylabel("Mean max of throws") 
plt.show()

enter image description here

Which means, if we used a constant c to multiply each of the n throws of player A, the expected maximum would be equal to the m throws of player B, if we use this formula for c:

enter image description here (or) enter image description here

But this is wrong, because the riddle does not try to equalize the mean of the maxima. Instead it wants to equalize the rank-sum of the 2 players distributions of maxima. (if we ranked each maximum throughout both distributions)

Here, just for illustrative purposes, I show how my formula is unable to accurately fit the median of maxima:

enter image description here

$\endgroup$
  • 3
    $\begingroup$ This question is answered by comparing the two Beta distributions involved, because both maxima follow Beta$(n,1)$ distributions (for different $n$). $\endgroup$ – whuber Nov 20 at 17:56
  • $\begingroup$ @Dougal Right--I realized that the moment I posted my original comment. $\endgroup$ – whuber Nov 20 at 17:59
  • $\begingroup$ I see. Real data of that format would follow a beta-distribution that I would need to evaluate. (Thanks I learned something!) But in this case, I don't think there is a need for a beta distribution! Just assume a fully homogeneous distribution! $\endgroup$ – KaPy3141 Nov 20 at 18:11
  • 1
    $\begingroup$ I'm posting my solution for comparison without derivation. Denote $m$ is the number of dice for the player with more dice and $n=xm$ is the number of dice of the other player. The multiplicative constant is then $c = 2^{(1/n)}(1 + x)^{-(1/n)}$. Setting $m = 7, n=3$ and $x = 3/7$ we get $c = (7/5)^{(1/3)}$. $\endgroup$ – COOLSerdash Nov 20 at 19:30
  • 1
    $\begingroup$ @COOLSerdash, I have posted an answer containing an exact solution which is in perfect agreement with your comment. $\endgroup$ – knrumsey - Reinstate Monica Nov 20 at 19:46
21
$\begingroup$

Multiply by $\left(\frac{2(7)}{3+7}\right)^{1/3} = 1.1187$


More generally, suppose that player $A$ rolls $n$ times and player $B$ rolls $m$ times (without loss of generality, we assume $m \geq n$). As others have already noted, the (unscaled) score of player $A$ is $$X \sim Beta(n, 1)$$ and the score of player $B$ is $$Y \sim Beta(m, 1)$$ with $X$ and $Y$ independent. Thus, the joint distribution of $X$ and $Y$ is $$f_{XY}(x, y) = nmx^{n-1}y^{m-1}, \ 0 < x, y < 1.$$

The goal is to find a constant $c$ such that

$$P(Y \geq cX) = \frac{1}{2}$$.

This probability can be found in terms of $c$, $n$ and $m$ as follows.

\begin{align*} P(Y \geq cX) &= \int_0^{1/c}\int_{cx}^1 nmx^{n-1}y^{m-1}dydx \\[1.5ex] &= \cdots \\[1.5ex] &= c^{-n}\left\{\frac{m}{n+m} \right\} \end{align*}

Setting this equal to $1/2$ and solving for $c$ yields

$$c = \left(\frac{2m}{n+m}\right)^{1/n}.$$

$\endgroup$
  • $\begingroup$ (+1) Great! May I ask how you found the limits of integration for the joint density? $\endgroup$ – COOLSerdash Nov 20 at 20:09
  • 4
    $\begingroup$ @COOLSerdash it is scanning the triangle where y < cx. You can do this in two directions. This one scans the lines cx < y < 1. And x goes from 0 to 1/c. $\endgroup$ – Sextus Empiricus Nov 20 at 20:20
  • $\begingroup$ This is actually the integral for $P(y > cx)$ $\endgroup$ – Sextus Empiricus Nov 20 at 20:27
  • 4
    $\begingroup$ This is another way $$ P(Y \geq cX) = \int_0^{1} \left( \int_{0}^{y/c} nmx^{n-1}y^{m-1}dx \right) dy $$ $\endgroup$ – Sextus Empiricus Nov 20 at 20:30
  • $\begingroup$ @SextusEmpiricus Thanks! With your hint about the triangle, I was able to work out the other way just now. Many thanks. $\endgroup$ – COOLSerdash Nov 20 at 20:32
9
$\begingroup$

I don't believe that a linear scaling factor will equalize the odds, or at least I cannot determine one. However, there is a power factor that can.

If you raise player-A's score to the $\frac{3}{7}$ you should have a fair game. Obviously, since scores are between 0 and 1, raising it to a power of between 0 and 1 (not inclusive) will actually increase it.

Why?

The way I figure it, the probability of a score not exceeding $S$, is equal to $1 - S^n$.

If we set $1 - S_1^{n_1} = 1 - S_2^{n_2}$

$$1-S_1^{n_1}=1-S_2^{n_2}$$ $$S_1^{n_1}=S_2^{n_2}$$ $$n_1 log(S_1) = n_2 log(S_2)$$ $$log(S_1) = \frac{n_2}{n_1} log(S_2)$$ $$S_1 = S_2^{\frac{n_2}{n_1}}$$

$\endgroup$
  • 11
    $\begingroup$ Of course there exists a solution, because the chance that one extreme exceeds another is a continuous function of the multiplier. But your suggestion is a more natural (and far simpler) solution to the underlying problem of making the game fair. (+1) $\endgroup$ – whuber Nov 20 at 17:57
  • 1
    $\begingroup$ Logical and straight forward approach! (+1) Now may I ask a follow up-question? Is there any way of equalizing the 2 players chances if instead of a uniform distribution from [0,1], the dice sides had an unknown distribution of positive numbers? I suspect it's theoretically impossible without knowing the distribution of possible throws, but I would like to know your thoughts. $\endgroup$ – KaPy3141 Nov 25 at 11:09
  • $\begingroup$ Thanks @KaPy3141, unfortunately, I think it would have to depend upon the distribution. And in some cases, you might not be able to scale to a fair game. Imagine if the distribution is just 50% chance of 0 and 50% chance of 1. Any scaling of the one with fewer immediately reduces it to just if they get a single 1. $\endgroup$ – MikeP Nov 26 at 13:16
  • 1
    $\begingroup$ Yes, that's true, I fully agree! $\endgroup$ – KaPy3141 Nov 26 at 13:25
6
$\begingroup$

I'd like to try to put pieces of comments and answers together into a simulation, and into a plan for an analytic solution.

As @whuber says in his Comment, the maximum $X_1$ of three independent standard uniform random variables has $X_1 \sim \mathsf{Beta}(3,1)$ and the maximum $X_2$ of seven independent standard uniform random variables has $X_2 \sim \mathsf{Beta}(7,1).$ This is easy to prove analytically.

Then, as implied by @MikeP's Answer, $X_1^{3/7} \sim \mathsf{Beta}(7,1).$ This is also easy to prove analytically. Thus $X_2$ and $X_1^{3/7}$ have the same distribution.

Below are simulations in R of the distributions of $X_1, X_2,$ and $X_1^{3/7},$ each based on samples of size $100\,000.$ Histogams show the simulation results along with the density functions of $\mathsf{Beta}(3,1)$ [red curve] and $\mathsf{Beta}(7,1)$ [blue], as appropriate.

set.seed(1120)
x1 = replicate(10^5, max(runif(3)))
mean(x1)
[1] 0.7488232     # aprx E(X1) = 3/4
par(mfrow=c(1,3))
hist(x1, prob=T, col="skyblue2")
 curve(dbeta(x,3,1), add=T, col="red", n=10001)

x2 = replicate(10^5, max(runif(7)))
mean(x2)
[1] 0.8746943     # aprx E(X2) = 7/8
hist(x2, prob=T, col="skyblue2")
 curve(dbeta(x,7,1), add=T, col="blue", n=10001)

mean(x1^(3/7))
[1] 0.8743326     # aprx 7/8
hist(x1^(3/7), prob=T, col="skyblue2")
 curve(dbeta(x,7,1), add=T, col="blue", n = 10001)
par(mfrow=c(1,1))

enter image description here

$\endgroup$
  • 1
    $\begingroup$ Very nice. (+1) Check out my answer for an analytic solution. (: $\endgroup$ – knrumsey - Reinstate Monica Nov 20 at 19:44
  • $\begingroup$ This nicely shows how it would be wrong to just scale-up distribution x1 by factor 0.8746943/0.7488232. x1^(3/7) replicates the whole distribution, not just the mean. I learned a lot from this! Thanks a lot! (+1) $\endgroup$ – KaPy3141 Nov 21 at 12:04
3
$\begingroup$

I did not solve the problem analytically but I performed a simulation with 100 different $a/b$ ratios varying from 0.01 to 1. $a$ is the number of dice of player A and $b$ is the number of dice of player $b$. For each ratio I simulated 1000 games and computed the multiplicative constant.

This what I got: enter image description here

For the dice I assumed a uniform distribution between 0 and 1.


If we take the same ratio the expected value for the multiplicative constant is the same. I tested with a ratio of $0.5$ timing $a$ and $b$ up to a factor of 2000. Here the results as scatter plot and density distribution

:enter image description here

enter image description here

$\endgroup$
  • $\begingroup$ Nice! And what if you increased both players throws at constant ratio? $\endgroup$ – KaPy3141 Nov 20 at 18:15
  • $\begingroup$ @KaPy3141 check my edit! $\endgroup$ – Giulia Martini Nov 20 at 18:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.