What is the expected number of rolls of a
fair, normal 6-sided die, one is required to make, so that each of the 6 numbers comes up at least once?
Hint: this is not necessarily an integer answer
_____________________
As an aside, it would be interesting to see the computer program simulation of this, but this would not be proof of the solution (merely evidence supporting the proof).
(In reply to
The other answers by Charlie)
Here's a result from a simulation verifying, in addition to the mean, also the mode and median previously posted:
mean= 14.69898
6 1490 1490
7 3874 5364
8 5929 11293
9 7494 18787
10 8174 26961
11 8632 35593
12 8296 43889
13 7533 51422
14 6834 58256
15 6187 64443
16 5386 69829
17 4643 74472
18 3947 78419
19 3420 81839
20 2996 84835
where the program is
DEFDBL A-Z
RANDOMIZE TIMER
DIM numT(50)
totTook = 0: totTrials = 0
FOR trial = 1 TO 100000
totTrials = totTrials + 1
REDIM had(6)
numHad = 0: thisTook = 0
DO
r = INT(RND(1) * 6 + 1)
IF had(r) = 0 THEN
had(r) = 1
numHad = numHad + 1
END IF
totTook = totTook + 1
thisTook = thisTook + 1
LOOP UNTIL numHad = 6
IF thisTook <= 50 THEN
numT(thisTook) = numT(thisTook) + 1
ELSE
numT(0) = numT(0) + 1
END IF
NEXT trial
PRINT \"mean=\"; totTook / totTrials
FOR i = 6 TO 20
cumP = cumP + numT(i)
PRINT USING \"## ##### #####\"; i; numT(i); cumP
NEXT
----
and for the pair-of-dice version:
mean= 61.05001
33 1702 20384
34 1680 22064
35 1803 23867
36 1791 25658
37 1759 27417
38 1667 29084
39 1783 30867
40 1810 32677
41 1716 34393
42 1623 36016
43 1609 37625
44 1644 39269
45 1590 40859
46 1578 42437
47 1582 44019
48 1502 45521
49 1497 47018
50 1462 48480
51 1396 49876
52 1400 51276
53 1313 52589
54 1343 53932
55 1280 55212
56 1309 56521
57 1237 57758
58 1204 58962
59 1152 60114
60 1144 61258
from
DEFDBL A-Z
RANDOMIZE TIMER
DIM numT(100)
totTook = 0: totTrials = 0
FOR trial = 1 TO 100000
totTrials = totTrials + 1
REDIM had(12)
numHad = 0: thisTook = 0
DO
r = INT(RND(1) * 6 + 1)
r2 = INT(RND(1) * 6 + 1)
r = r + r2
IF had(r) = 0 THEN
had(r) = 1
numHad = numHad + 1
END IF
totTook = totTook + 1
thisTook = thisTook + 1
LOOP UNTIL numHad = 11
IF thisTook <= 100 THEN
numT(thisTook) = numT(thisTook) + 1
ELSE
numT(0) = numT(0) + 1
END IF
NEXT trial
PRINT \"mean=\"; totTook / totTrials
FOR i = 11 TO 60
cumP = cumP + numT(i)
IF i > 32 THEN
PRINT USING "## ##### #####"; i; numT(i); cumP
END IF
NEXT
--------
--------
|
Posted by Charlie
on 2004-01-26 22:44:38 |