Problem Statement
Alice and Bob are playing a game. Alice rolls a identical b-sided dice. Bob rolls c identical d-sided dice. The sides of an n-sided die have numbers 1 through n written on them.
A player's score is the sum of the numbers they rolled on their dice. The player with a strictly higher score wins. It is possible that neither player wins.
You are given the
Definition
- Class:
- FixedDiceGameDiv1
- Method:
- getExpectation
- Parameters:
- int, int, int, int
- Returns:
- double
- Method signature:
- double getExpectation(int a, int b, int c, int d)
- (be sure your method is public)
Notes
- Your return value must have an absolute or relative error smaller than 1e-3.
Constraints
- a, b, c, d will each be between 1 and 50, inclusive.
Examples
1
2
1
5
Returns: 2.0
The only way Alice can win is if she rolls a 2. Thus, if we know Alice wins, we know she rolled a 2.
3
1
1
3
Returns: 3.0
Alice will always roll a 3.
1
5
1
1
Returns: 3.4999999999999996
Alice will not win if she rolls a 1. Thus, if we know she wins, her expected score is (2+3+4+5)/4=7/2.
2
6
50
30
Returns: -1.0
No matter what Alice rolls, she will lose.
50
11
50
50
Returns: 369.8865999182022
50
50
50
50
Returns: 1332.7589106984374
max bounds
2
6
6
2
Returns: 10.148148148148147
1
50
50
1
Returns: -1.0
4
4
20
50
Returns: -1.0
21
30
5
4
Returns: 325.4999999999997
31
29
21
39
Returns: 478.75536280357505
49
17
46
43
Returns: 534.2170925066571
1
1
1
1
Returns: -1.0
27
16
21
29
Returns: 258.7074101537062
10
43
20
31
Returns: 279.6602257881004
15
50
13
50
Returns: 400.16061658758815
3
8
25
28
Returns: -1.0
48
19
33
29
Returns: 502.6872572209374
31
46
50
50
Returns: 926.4124713423334
40
39
13
28
Returns: 800.0
18
31
26
20
Returns: 306.5496066751804
24
31
43
22
Returns: 454.5514654839089
15
18
13
46
Returns: 171.46762889735407
16
11
25
33
Returns: 128.25086190339601
11
11
22
8
Returns: 84.6482753727544
15
27
30
2
Returns: 210.0000000322832
16
11
8
33
Returns: 105.85739594226452
50
38
6
6
Returns: 975.0000000000006
49
27
7
22
Returns: 685.9999999999997
4
49
35
23
Returns: 179.57904432269555
50
32
13
41
Returns: 825.0000000000275
4
21
16
42
Returns: 71.35525024147547
24
25
38
6
Returns: 312.00003679806423
20
35
38
19
Returns: 397.7861355777227
20
15
14
14
Returns: 160.5082495855897
4
31
8
23
Returns: 85.15550700214645
1
4
15
20
Returns: -1.0
27
39
11
44
Returns: 540.0036735288666
27
50
31
33
Returns: 693.9472629135273
23
22
49
24
Returns: 366.58178351553005
43
34
49
2
Returns: 752.5000000000014
18
26
16
14
Returns: 243.0241513368867
35
29
42
6
Returns: 525.0000000000002
37
11
14
42
Returns: 237.4588865436795
22
2
3
29
Returns: 33.51463413522666
34
8
50
22
Returns: 200.27130538628728
19
4
48
20
Returns: 68.78676255099504
14
27
16
8
Returns: 196.00127731133506
13
26
38
30
Returns: 265.0953587969176
29
6
24
3
Returns: 101.50000087473207
15
16
46
15
Returns: 192.74264208870224
42
36
37
40
Returns: 808.8882986768757
43
32
43
21
Returns: 709.5930563242547
3
4
12
1
Returns: -1.0
5
10
50
3
Returns: -1.0
50
49
49
50
Returns: 1306.1592757857798
2
3
6
1
Returns: -1.0
5
5
25
1
Returns: -1.0
1
2
2
1
Returns: -1.0
2
2
4
2
Returns: -1.0
1
50
50
50
Returns: -1.0
5
5
25
5
Returns: -1.0
39
39
39
39
Returns: 819.8389117308133
50
50
50
5
Returns: 1274.9999999999995
1
1
1
2
Returns: -1.0
1
1
1
5
Returns: -1.0
3
3
9
1
Returns: -1.0
2
2
4
1
Returns: -1.0
2
3
6
7
Returns: -1.0
1
21
20
20
Returns: 21.0
50
33
50
50
Returns: 989.8999699575622