Statistics

Problem Statement for "TorusSailing"

Problem Statement

Fox Ciel is sailing in the Donut sea. The Donut sea is a torus. For navigation, the torus is divided into N times M cells, as shown in the figure below.



(Image by YassineMrabet from Wikimedia Commons, licensed under CC BY-SA 3.0.)

Each of the cells has two integer coordinates (n, m), where 0 <= n < N and 0 <= m < M. Note that the coordinates wrap around modulo N and M. For example, if you are in the cell (N-1, M-1) and you cross over one of its sides, you will reach one of the cells (N-2, M-1), (0, M-1), (N-1, M-2), and (N-1, 0).


Ciel starts in the cell (0, 0) and wants to reach the goal cell (goalX, goalY).


Unfortunately, Ciel's navigation is very poor. Whenever she moves to a new cell, there are two equally probable outcomes: either her first or her second coordinate increases by one (wrapping around if necessary). Formally, if Ciel's current coordinates are (n, m), her new coordinates will be either ((n+1) modulo N, m), or (n, (m+1) modulo M), with equal probability. Each such move takes one day.


Return the expected number of days Ciel will need to reach her goal.

Definition

Class:
TorusSailing
Method:
expectedTime
Parameters:
int, int, int, int
Returns:
double
Method signature:
double expectedTime(int N, int M, int goalX, int goalY)
(be sure your method is public)

Notes

  • The returned value must have an absolute or relative error less than 1e-9.

Constraints

  • N will be between 2 and 100, inclusive.
  • M will be between 2 and 100, inclusive.
  • goalX will be between 0 and N - 1, inclusive.
  • goalY will be between 0 and M - 1, inclusive.
  • (goalX, goalY) will not be (0, 0).

Examples

  1. 2

    2

    1

    1

    Returns: 4.0

    She can reach the goal in 2 days with probability 1/2, in 4 days with probability 1/4, in 6 days with probability 1/8, in 8 days with probability 1/16, and so on. In general, she can reach the goal in 2*n days with probability 1/(2^n) where n is a positive integer. The answer is (2 * 1/2) + (4 * 1/4) + (6 * 1/8) + (8 * 1/16) + ... = 4.0

  2. 3

    3

    0

    2

    Returns: 8.0

  3. 7

    10

    3

    2

    Returns: 51.80060107964039

  4. 100

    100

    99

    99

    Returns: 9992.616372325532

  5. 2

    4

    0

    1

    Returns: 3.8000000000000003

  6. 2

    4

    1

    3

    Returns: 8.8

  7. 2

    9

    1

    4

    Returns: 14.074382684686519

  8. 2

    29

    0

    19

    Returns: 57.333333316699395

  9. 2

    33

    0

    32

    Returns: 86.00000000000006

  10. 2

    35

    1

    6

    Returns: 35.36534064929129

  11. 2

    41

    0

    29

    Returns: 85.33333333333299

  12. 2

    57

    0

    4

    Returns: 45.530864197530875

  13. 2

    71

    1

    53

    Returns: 153.33333333333337

  14. 2

    84

    1

    29

    Returns: 114.00000000000094

  15. 2

    97

    1

    29

    Returns: 122.66666666666788

  16. 3

    6

    2

    5

    Returns: 18.59340659340659

  17. 3

    8

    0

    3

    Returns: 17.270493103313793

  18. 3

    8

    2

    1

    Returns: 17.667232615280614

  19. 4

    4

    1

    3

    Returns: 14.399999999999999

  20. 4

    74

    0

    27

    Returns: 221.73333328896143

  21. 5

    7

    4

    4

    Returns: 30.970665141436612

  22. 5

    34

    3

    21

    Returns: 149.48384912679867

  23. 5

    45

    3

    29

    Returns: 200.25806427882674

  24. 6

    2

    3

    0

    Returns: 9.857142857142858

  25. 6

    7

    2

    3

    Returns: 31.806096080018506

  26. 6

    20

    0

    11

    Returns: 103.79539187693247

  27. 6

    30

    0

    7

    Returns: 137.63320776515744

  28. 6

    95

    1

    94

    Returns: 577.0476190476198

  29. 7

    4

    0

    1

    Returns: 14.92393779465458

  30. 7

    6

    3

    5

    Returns: 38.2603510306902

  31. 7

    9

    6

    8

    Returns: 61.21955243016511

  32. 7

    57

    1

    30

    Returns: 348.1418559907895

  33. 8

    5

    1

    0

    Returns: 19.289672534866863

  34. 8

    55

    5

    22

    Returns: 375.7176269820045

  35. 9

    2

    0

    1

    Returns: 12.000609694136777

  36. 9

    3

    7

    0

    Returns: 26.86838113125766

  37. 9

    10

    5

    0

    Returns: 88.09838464566226

  38. 9

    24

    5

    6

    Returns: 171.53828722622777

  39. 10

    5

    9

    1

    Returns: 49.673166830308666

  40. 10

    6

    1

    1

    Returns: 31.079410584776475

  41. 10

    7

    7

    2

    Returns: 65.43257244102476

  42. 10

    36

    6

    26

    Returns: 340.3970656326253

  43. 10

    88

    8

    26

    Returns: 756.7805161471811

  44. 12

    3

    3

    2

    Returns: 24.082405410274255

  45. 13

    2

    8

    1

    Returns: 24.66799304030177

  46. 14

    95

    0

    5

    Returns: 1268.9842966611013

  47. 17

    2

    0

    1

    Returns: 22.666666842186554

  48. 18

    8

    8

    4

    Returns: 124.08669881445297

  49. 18

    29

    4

    3

    Returns: 383.62761791614207

  50. 20

    10

    7

    0

    Returns: 181.39053148465823

  51. 20

    35

    3

    1

    Returns: 528.3291317157722

  52. 21

    28

    4

    12

    Returns: 588.3230584169237

  53. 22

    47

    16

    36

    Returns: 1011.4699942870288

  54. 24

    69

    5

    61

    Returns: 1638.3123211756197

  55. 25

    48

    13

    17

    Returns: 1099.6553336341115

  56. 25

    68

    5

    16

    Returns: 1686.1103832044855

  57. 25

    84

    22

    14

    Returns: 2012.0669130276785

  58. 26

    2

    21

    0

    Returns: 59.333333331683185

  59. 27

    41

    18

    37

    Returns: 1091.165348353744

  60. 28

    31

    10

    2

    Returns: 873.4200250277795

  61. 30

    40

    27

    35

    Returns: 1181.4015716454364

  62. 31

    15

    11

    13

    Returns: 417.065003765284

  63. 31

    68

    10

    8

    Returns: 1771.187306682859

  64. 32

    2

    21

    1

    Returns: 63.33333333537281

  65. 33

    9

    16

    3

    Returns: 263.1098847673352

  66. 34

    13

    3

    4

    Returns: 326.6785614347832

  67. 38

    47

    26

    43

    Returns: 1829.90059976723

  68. 39

    40

    0

    39

    Returns: 1555.1254389160606

  69. 40

    24

    34

    11

    Returns: 926.0099169546604

  70. 40

    32

    39

    14

    Returns: 1261.2629181371847

  71. 42

    15

    16

    2

    Returns: 570.731314470298

  72. 42

    88

    23

    61

    Returns: 3607.747317443862

  73. 43

    64

    2

    56

    Returns: 2689.773574538708

  74. 43

    98

    2

    44

    Returns: 3938.112464212912

  75. 44

    38

    24

    29

    Returns: 1565.123001986724

  76. 47

    40

    3

    31

    Returns: 1964.3644465614852

  77. 48

    56

    9

    42

    Returns: 2675.5821677588624

  78. 50

    28

    23

    26

    Returns: 1302.7328635658164

  79. 50

    71

    16

    30

    Returns: 3501.1290118680054

  80. 51

    2

    34

    0

    Returns: 101.99999999999994

  81. 52

    95

    39

    94

    Returns: 4850.378739592303

  82. 53

    80

    32

    3

    Returns: 4097.147066832872

  83. 54

    65

    0

    55

    Returns: 3341.794720386737

  84. 57

    65

    1

    39

    Returns: 3705.750908690869

  85. 57

    75

    48

    19

    Returns: 4187.696644389268

  86. 58

    58

    15

    13

    Returns: 2972.358965759264

  87. 61

    67

    41

    5

    Returns: 4368.537865366961

  88. 62

    76

    30

    11

    Returns: 4544.9918364919495

  89. 65

    73

    7

    40

    Returns: 4919.731231666166

  90. 67

    8

    52

    5

    Returns: 508.10196104540023

  91. 67

    9

    65

    6

    Returns: 600.1800392201667

  92. 74

    93

    50

    33

    Returns: 6611.012837861477

  93. 80

    47

    12

    12

    Returns: 3172.5421624935807

  94. 83

    59

    16

    15

    Returns: 4230.312721204351

  95. 85

    86

    47

    52

    Returns: 7139.47043987844

  96. 85

    93

    67

    87

    Returns: 8319.231231606933

  97. 87

    91

    35

    25

    Returns: 7592.6730006157595

  98. 89

    48

    61

    20

    Returns: 4194.485276890517

  99. 90

    90

    61

    86

    Returns: 9014.144203285074

  100. 90

    99

    62

    78

    Returns: 9176.5833925519

  101. 91

    93

    36

    37

    Returns: 7909.219438664175

  102. 91

    95

    52

    36

    Returns: 8625.391240790024

  103. 91

    95

    88

    4

    Returns: 8949.031616931412

  104. 91

    97

    58

    93

    Returns: 9660.753110363148

  105. 92

    90

    11

    32

    Returns: 8756.319742653312

  106. 92

    100

    38

    23

    Returns: 8875.213645129132

  107. 93

    90

    57

    81

    Returns: 8848.029837295904

  108. 93

    96

    4

    17

    Returns: 9518.134168622015

  109. 94

    2

    92

    0

    Returns: 246.66666666666657

  110. 94

    97

    53

    82

    Returns: 10285.327719309254

  111. 95

    90

    58

    75

    Returns: 8514.14862230009

  112. 95

    91

    85

    47

    Returns: 9708.4312977524

  113. 95

    92

    38

    53

    Returns: 8773.601227631909

  114. 95

    99

    6

    44

    Returns: 10575.856192392523

  115. 95

    100

    22

    80

    Returns: 10156.896771791113

  116. 96

    92

    68

    6

    Returns: 9399.318891424467

  117. 96

    98

    20

    39

    Returns: 10282.796732740906

  118. 99

    30

    68

    13

    Returns: 2906.7601866291816

  119. 99

    94

    79

    89

    Returns: 9082.98332016824

  120. 100

    5

    25

    1

    Returns: 366.12902073839996

  121. 100

    99

    50

    68

    Returns: 10385.345282048595

  122. 100

    100

    11

    1

    Returns: 10245.825582311874

  123. 100

    100

    13

    71

    Returns: 11610.623329822454

  124. 100

    100

    19

    85

    Returns: 11416.546256976902

  125. 100

    100

    41

    58

    Returns: 10553.124874841615

  126. 100

    100

    44

    90

    Returns: 11658.292807872549

  127. 100

    100

    45

    70

    Returns: 11048.655012720867

  128. 100

    100

    52

    18

    Returns: 11418.374580028743

  129. 100

    100

    53

    85

    Returns: 11351.572324746736

  130. 100

    100

    63

    86

    Returns: 10933.07612527848

  131. 100

    100

    73

    73

    Returns: 9775.827352290125

  132. 100

    100

    84

    88

    Returns: 9940.226549754017

  133. 100

    100

    0

    1

    Returns: 5006.327157905663

  134. 100

    100

    1

    0

    Returns: 5006.327157905709

  135. 2

    100

    1

    0

    Returns: 133.33333333333337

  136. 100

    2

    0

    1

    Returns: 133.33333333333337

  137. 10

    100

    5

    5

    Returns: 749.9646811086918

  138. 77

    11

    3

    3

    Returns: 584.3216984146654

  139. 2

    2

    0

    1

    Returns: 3.0

  140. 2

    2

    1

    0

    Returns: 3.0


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: