4

This problem was proposed to me at a job interview. Suppose you want two dice, both with 6 faces. The first dice has faces with values in $\{1,2,3,4\}$, the other can take values in all $\mathbb N$. Well now we consider the classical random variable $Z = $ "sum of the values of the up faces after a roll". What values should I put on each faces of both dice if I wanted $Z$ to have the same probability distribution as if they were regular dice?

$ P (Z = 1) = 0, \,\, P(Z=2) = \frac{1}{36},\, \dots,\,P(Z = 12) = \frac{1}{36}, P(Z=13) = 0,\, \dots $

I tried working my way back from the extremes $Z = 12, Z = 2$, and for example you have to put only one 1 per dice, only one 4 on the first dice and only one 8 on the second and so on and so on, and maybe two "3" on the first, but I seem to run into problems for values around $Z=7$.

Hope the problem is clear as english is not my first language.

oxedex
  • 105
  • 6
  • 2
    I suggest just playing with it. You know that the second die has faces no greater than $8$. So, start there. It's not clear to me that it is possible to do this, but if it is possible then just playing with the numbers should find a solution pretty quickly. – lulu Feb 01 '24 at 17:25
  • 2
    @WW1 False. Read my links. For convenience, I'll copy the opening paragraph of the wiki article here for people too lazy to read the links. "Sicherman dice /ˈsɪkərmən/ are a pair of 6-sided dice with non-standard numbers–one with the sides 1, 2, 2, 3, 3, 4 and the other with the sides 1, 3, 4, 5, 6, 8. They are notable as the only pair of 6-sided dice that are not normal dice , bear only positive integers, and have the same probability distribution for the sum as normal dice." – JMoravitz Feb 01 '24 at 17:42

2 Answers2

2

We know that the combinations 2 and 12 have one single occurence with normal dices, and they are the lowest and highest possible values. That is enough to conclude that dice 1 has one single face with 1, and one single face with 4, and that the second one has one single face with 1 and one single face with 8.

Combination 3 and 11 both have 2 occurences (resp 1-2, 2-1 and 5-6, 6-5). As second dice has one 1 and one 8, first one cannot have more than two 2 or two 3.

So we already know that first dice is 1, 2, 2, 3, 3, 4.

As second dice has one 1 and one 8, it cannot have any 2 nor 7.

Combinations 4 and 10 both have 3 occurences (resp 1-3, 2-2, 3-1 and 4-6, 5-5, 6-4). We allready have 3-1, 3-1 so second dice has one single 3 (1-3). The same we have 2-8, 2-8 so second dice has one single 6 (4-6).

Combinations 5 and 9 have 4 occurences (resp 1-4, 2-3, 3-2, 4-1 and 3-6, 4-5, 5-4, 6-3). Ok, we have 2-3, 2-3, 4-1 and 1-8, 3-6, 3-6. So the second dice must have one 4 and one 6 to add resp 1-4 and 4-5.

Hence the only possibility for dice 2 is 1, 3, 4, 5, 6, 8

We now have to verify that those dices have the correct number of combinations for 6 and 8 (5 combinations each) and 7 (6 combinations) and... it just works!

1

A brute-force computer solution:

TARGET_DISTRIBUTION = [0, 0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1]

def sum_distribution(die1, die2): ''' Return an array whose [z] element is the number of occurrences of the given dice sum. ''' result = [0] * 13 for value1 in die1: for value2 in die2: result[value1 + value2] += 1 return result

def possible_die1(): ''' Return all possible dice with values from {1, 2, 3, 4}. ''' result = [] for side1 in range(1, 5): for side2 in range(side1, 5): for side3 in range(side2, 5): for side4 in range(side3, 5): for side5 in range(side4, 5): for side6 in range(side5, 5): result.append((side1, side2, side3, side4, side5, side6)) return result

def possible_die2(): ''' Return all possible dice with values from 0 to 11. ''' result = [] for side1 in range(0, 12): for side2 in range(side1, 12): for side3 in range(side2, 12): for side4 in range(side3, 12): for side5 in range(side4, 12): for side6 in range(side5, 12): result.append((side1, side2, side3, side4, side5, side6)) return result

for die1 in possible_die1(): for die2 in possible_die2(): if die1[0] + die2[0] == 2 and die1[-1] + die2[-1] == 12: if sum_distribution(die1, die2) == TARGET_DISTRIBUTION: print(die1, die2)

This gives the output:

(1, 2, 2, 3, 3, 4) (1, 3, 4, 5, 6, 8)

AKA the Sicherman dice.

Dan
  • 14,978