Problem Statement
Our goal is to solve a generalized version of this problem in which we roll nDice identical dice, each with sides labelled 1,2,...,maxSide. We want to know the probability that the sum of the dice is greater than or equal to theSum given that at least one of the dice shows the value v. Create a class Conditional that contains a method probability that is given nDice,maxSide, v, and theSum and that returns the desired conditional probability.
Definition
- Class:
- Conditional
- Method:
- probability
- Parameters:
- int, int, int, int
- Returns:
- double
- Method signature:
- double probability(int nDice, int maxSide, int v, int theSum)
- (be sure your method is public)
Notes
- The returned value must be accurate to within a relative or absolute value of 1E-9.
Constraints
- nDice and maxSide will be between 1 and 50, inclusive.
- v will be between 1 and maxSide, inclusive.
- theSum will be between 1 and maxSide*nDice, inclusive.
Examples
2
6
6
12
Returns: 0.09090909090909091
This is the example above whose answer is 1/11. (Of course, the sum cannot be greater than 12.)
2
6
6
6
Returns: 1.0
Given that at least one of the dice shows a 6 the sum of the 2 dice must be at least 7.
1
9
3
3
Returns: 1.0
2
3
2
4
Returns: 0.6
Two 3-sided (!) dice with at least one 2 showing: 12 22 32 21 23 are the 5 possible equally likely results, and 3 of the 5 have a sum greater than or equal to 4.
50
50
50
1
Returns: 0.9999999999999967
50
50
1
1234
Returns: 0.6065038966315277
3
1
1
2
Returns: 1.0
3
1
1
3
Returns: 1.0
3
2
2
6
Returns: 0.14285714285714285
50
2
2
76
Returns: 0.44386241367039186
50
2
1
75
Returns: 0.5561375863296081
50
30
1
1300
Returns: 2.5399419266958173E-23
5
30
1
75
Returns: 0.27533413164043663
1
4
4
3
Returns: 1.0
20
4
4
27
Returns: 0.9999999720718009
9
6
5
31
Returns: 0.6268537748023865
31
40
20
367
Returns: 0.9999930562338223
14
13
11
151
Returns: 5.453029923318587E-5
29
13
10
297
Returns: 7.795014737059219E-7
34
26
22
563
Returns: 0.010441662002489594
19
17
7
232
Returns: 0.0013834917661672413
12
38
14
388
Returns: 5.775198675184631E-7
39
10
2
362
Returns: 7.316645457324389E-23
39
5
5
108
Returns: 0.8585970614298535
24
37
19
231
Returns: 0.9999975047685218
26
41
9
830
Returns: 8.861924833662333E-8
3
48
21
40
Returns: 0.9321908701433004
48
26
14
99
Returns: 0.9999999999999993
21
42
19
862
Returns: 0.0
49
32
10
173
Returns: 1.0000000000000002
34
30
7
614
Returns: 0.03345959839326994
46
2
1
69
Returns: 0.5585020439387954
22
11
1
75
Returns: 0.9999642798272311
37
2
1
6
Returns: 1.0
30
29
11
835
Returns: 1.082803357398144E-30
23
9
1
122
Returns: 0.27422716822202015
15
49
25
353
Returns: 0.6623121652697722
7
49
5
149
Returns: 0.5868050160689797
24
8
8
7
Returns: 1.0000000000000002
22
34
25
486
Returns: 0.017276761759106717
32
44
35
877
Returns: 0.018148482714944094
38
42
36
1401
Returns: 2.1820394590906484E-18
34
46
41
174
Returns: 0.9999999999999998
1
8
8
3
Returns: 1.0
48
50
27
235
Returns: 0.9999999999999989
14
19
11
211
Returns: 1.32940448169323E-4
12
18
11
49
Returns: 0.9999827581018343
50
4
4
114
Returns: 0.9270471837179275
9
38
7
310
Returns: 2.2975880608148006E-12
41
32
18
1226
Returns: 4.284894444082593E-30
44
33
4
448
Returns: 0.9999993000184015
12
38
7
375
Returns: 2.020161856917486E-6
26
34
2
220
Returns: 0.9999992301535131
12
37
21
180
Returns: 0.9196250744358586
49
38
38
998
Returns: 0.33174712168162546
50
50
48
1666
Returns: 7.534739841501312E-5
50
50
25
200
Returns: 0.9999999999999997
50
50
1
1
Returns: 0.9999999999999992
50
50
38
1200
Returns: 0.792839402396853
50
50
50
1200
Returns: 0.813885451334627
50
50
1
1250
Returns: 0.5443439491287221
50
50
35
1250
Returns: 0.6199599173066064
50
50
34
1978
Returns: 1.9798976937437787E-13
50
50
6
100
Returns: 0.9999999999999988
50
50
50
2500
Returns: 1.770755296785606E-85
50
50
30
1000
Returns: 0.9970818543000018
50
50
50
2499
Returns: 9.030852013606592E-84
50
50
32
1349
Returns: 0.2463888390005133
50
50
30
1200
Returns: 0.7788946791076431
50
50
21
200
Returns: 0.9999999999999992
50
50
23
1250
Returns: 0.59342105224914
49
47
23
1230
Returns: 0.2839462500117616
50
50
50
2000
Returns: 4.2082315493315665E-14
50
50
50
1119
Returns: 0.9555720210984059
50
50
30
465
Returns: 0.9999999999999996
50
50
25
1500
Returns: 0.01319355483009048
33
16
16
474
Returns: 2.1789896914338626E-16
50
50
25
300
Returns: 0.9999999999999997
50
50
17
997
Returns: 0.9966371988641942
50
50
35
1300
Returns: 0.4259162818274663
50
50
1
1000
Returns: 0.9954527270692969
50
30
20
1500
Returns: 0.0
50
50
48
1666
Returns: 7.534739841501312E-5
50
50
25
200
Returns: 0.9999999999999997
50
50
1
1
Returns: 0.9999999999999992
50
50
38
1200
Returns: 0.792839402396853
50
50
50
1200
Returns: 0.813885451334627
50
50
1
1250
Returns: 0.5443439491287221
50
50
35
1250
Returns: 0.6199599173066064
50
50
34
1978
Returns: 1.9798976937437787E-13
50
50
6
100
Returns: 0.9999999999999988
50
50
50
2500
Returns: 1.770755296785606E-85
50
50
30
1000
Returns: 0.9970818543000018
50
50
50
2499
Returns: 9.030852013606592E-84
50
50
32
1349
Returns: 0.2463888390005133
50
50
30
1200
Returns: 0.7788946791076431
50
50
21
200
Returns: 0.9999999999999992
50
50
23
1250
Returns: 0.59342105224914
49
47
23
1230
Returns: 0.2839462500117616
50
50
50
2000
Returns: 4.2082315493315665E-14
50
50
50
1119
Returns: 0.9555720210984059
50
50
30
465
Returns: 0.9999999999999996
50
50
25
1500
Returns: 0.01319355483009048
33
16
16
474
Returns: 2.1789896914338626E-16
50
50
25
300
Returns: 0.9999999999999997
50
50
17
997
Returns: 0.9966371988641942
50
50
35
1300
Returns: 0.4259162818274663
50
50
1
1000
Returns: 0.9954527270692969
50
30
20
1500
Returns: 0.0