Statistics

Problem Statement for "FixedDiceGameDiv1"

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 ints a, b, c, and d. The players already rolled their dice. If it's not possible for Alice to win, return -1. Otherwise, assume that you don't know what numbers Alice and Bob rolled, but that you know that Alice won the game. Return the expected value of Alice's score (given the above assumption).

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. 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.

  2. 3

    1

    1

    3

    Returns: 3.0

    Alice will always roll a 3.

  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.

  4. 2

    6

    50

    30

    Returns: -1.0

    No matter what Alice rolls, she will lose.

  5. 50

    11

    50

    50

    Returns: 369.8865999182022

  6. 50

    50

    50

    50

    Returns: 1332.7589106984374

    max bounds

  7. 2

    6

    6

    2

    Returns: 10.148148148148147

  8. 1

    50

    50

    1

    Returns: -1.0

  9. 4

    4

    20

    50

    Returns: -1.0

  10. 21

    30

    5

    4

    Returns: 325.4999999999997

  11. 31

    29

    21

    39

    Returns: 478.75536280357505

  12. 49

    17

    46

    43

    Returns: 534.2170925066571

  13. 1

    1

    1

    1

    Returns: -1.0

  14. 27

    16

    21

    29

    Returns: 258.7074101537062

  15. 10

    43

    20

    31

    Returns: 279.6602257881004

  16. 15

    50

    13

    50

    Returns: 400.16061658758815

  17. 3

    8

    25

    28

    Returns: -1.0

  18. 48

    19

    33

    29

    Returns: 502.6872572209374

  19. 31

    46

    50

    50

    Returns: 926.4124713423334

  20. 40

    39

    13

    28

    Returns: 800.0

  21. 18

    31

    26

    20

    Returns: 306.5496066751804

  22. 24

    31

    43

    22

    Returns: 454.5514654839089

  23. 15

    18

    13

    46

    Returns: 171.46762889735407

  24. 16

    11

    25

    33

    Returns: 128.25086190339601

  25. 11

    11

    22

    8

    Returns: 84.6482753727544

  26. 15

    27

    30

    2

    Returns: 210.0000000322832

  27. 16

    11

    8

    33

    Returns: 105.85739594226452

  28. 50

    38

    6

    6

    Returns: 975.0000000000006

  29. 49

    27

    7

    22

    Returns: 685.9999999999997

  30. 4

    49

    35

    23

    Returns: 179.57904432269555

  31. 50

    32

    13

    41

    Returns: 825.0000000000275

  32. 4

    21

    16

    42

    Returns: 71.35525024147547

  33. 24

    25

    38

    6

    Returns: 312.00003679806423

  34. 20

    35

    38

    19

    Returns: 397.7861355777227

  35. 20

    15

    14

    14

    Returns: 160.5082495855897

  36. 4

    31

    8

    23

    Returns: 85.15550700214645

  37. 1

    4

    15

    20

    Returns: -1.0

  38. 27

    39

    11

    44

    Returns: 540.0036735288666

  39. 27

    50

    31

    33

    Returns: 693.9472629135273

  40. 23

    22

    49

    24

    Returns: 366.58178351553005

  41. 43

    34

    49

    2

    Returns: 752.5000000000014

  42. 18

    26

    16

    14

    Returns: 243.0241513368867

  43. 35

    29

    42

    6

    Returns: 525.0000000000002

  44. 37

    11

    14

    42

    Returns: 237.4588865436795

  45. 22

    2

    3

    29

    Returns: 33.51463413522666

  46. 34

    8

    50

    22

    Returns: 200.27130538628728

  47. 19

    4

    48

    20

    Returns: 68.78676255099504

  48. 14

    27

    16

    8

    Returns: 196.00127731133506

  49. 13

    26

    38

    30

    Returns: 265.0953587969176

  50. 29

    6

    24

    3

    Returns: 101.50000087473207

  51. 15

    16

    46

    15

    Returns: 192.74264208870224

  52. 42

    36

    37

    40

    Returns: 808.8882986768757

  53. 43

    32

    43

    21

    Returns: 709.5930563242547

  54. 3

    4

    12

    1

    Returns: -1.0

  55. 5

    10

    50

    3

    Returns: -1.0

  56. 50

    49

    49

    50

    Returns: 1306.1592757857798

  57. 2

    3

    6

    1

    Returns: -1.0

  58. 5

    5

    25

    1

    Returns: -1.0

  59. 1

    2

    2

    1

    Returns: -1.0

  60. 2

    2

    4

    2

    Returns: -1.0

  61. 1

    50

    50

    50

    Returns: -1.0

  62. 5

    5

    25

    5

    Returns: -1.0

  63. 39

    39

    39

    39

    Returns: 819.8389117308133

  64. 50

    50

    50

    5

    Returns: 1274.9999999999995

  65. 1

    1

    1

    2

    Returns: -1.0

  66. 1

    1

    1

    5

    Returns: -1.0

  67. 3

    3

    9

    1

    Returns: -1.0

  68. 2

    2

    4

    1

    Returns: -1.0

  69. 2

    3

    6

    7

    Returns: -1.0

  70. 1

    21

    20

    20

    Returns: 21.0

  71. 50

    33

    50

    50

    Returns: 989.8999699575622


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: