Statistics

Problem Statement for "DrawingMarbles"

Problem Statement

A big box contains marbles of one or more colors. You're given a int[] colors, each element of which denotes the number of marbles there are of a particular color. You draw n marbles randomly from the box, leaving each marble outside the box after taking it. Return the probability that all marbles drawn will be the same color.

Definition

Class:
DrawingMarbles
Method:
sameColor
Parameters:
int[], int
Returns:
double
Method signature:
double sameColor(int[] colors, int n)
(be sure your method is public)

Notes

  • Every time we draw a marble, all marbles in the box are equally likely to be chosen.
  • A return value with either an absolute or relative error of less than 1.0E-9 is considered correct.

Constraints

  • colors will contain between 1 and 50 elements, inclusive.
  • Each element of colors will be between 1 and 50, inclusive.
  • n will be between 1 and the sum of all elements of colors, inclusive.

Examples

  1. { 13 }

    8

    Returns: 1.0

    All the marbles are the same color, so obviously all drawn marbles will be the same color too.

  2. { 5, 7 }

    1

    Returns: 1.0

  3. { 5, 6, 7 }

    2

    Returns: 0.3006535947712418

    The probability that the first drawn marble will be of the color 0 is 5 / 18 (there are 5 marbles of color 0 out of 18). If the first drawn marble is of the color 0, then the probability that the second drawn marble will be of the color 0 is 4 / 17 (there are 4 marbles of color 0 left out of 17). So the probability that both drawn marbles will be of the color 0 is (5 / 18) * (4 / 17) = 0.0653594771... . Similarly, the probability that both drawn marbles will be of the color 1 is (6 / 18) * (5 / 17) = 0.0980392156..., and that both drawn marbles will be of the color 2 is (7 / 18) * (6 / 17) = 0.1372549019... . The answer is the sum of these 3 probabilities.

  4. { 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    500

    Returns: 0.0

  5. { 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    10

    Returns: 4.178940467970992E-10

  6. { 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    5

    Returns: 8.300897542362798E-5

  7. { 12, 2, 34, 13, 17 }

    4

    Returns: 0.035028830818304504

  8. {16,10,11,20,6,12,17,2,15,15,17,8,14,19,1,1,4,5,13,9,14,2,17,4,3,20,4,11,13,19,2,8,20,5,20,6,16,16,19,2,10,15,9,4,14,1,16,9,17,8}

    3

    Returns: 6.451180614601044E-4

  9. {13,3,19,12,16,2,19,1,2,13,4,4,20,16,3,10,13,3,18,3,1,5,9,2,3,15,11,11,4,13,18,16,15,8,20,2,10,10,2,11,14,5,7,13,20,9,14,4,11,12}

    8

    Returns: 8.91313042384041E-12

  10. {24,28,40,2,31,12,27,18,36,44,17,44,3,3,18,31,5,42,43,23,15,4,21,19,6,31,34,24,5,27,8,30,4,49,31,35,12,10,4,47,3,20,43,7,24,12,39,29,3,32}

    1

    Returns: 1.0

  11. {19,35,21,37,42,4,22,18,10,48,25,40,4,25,22,40,36,31,45,35,34,17,27,42,40,38,31,18,40,14,21,8,50,41,46,41,46,18,8,6,17,34,47,22,8,18,11,46,1,8}

    32

    Returns: 4.755340490627849E-52

  12. {36,24,8,27,13,47,9,33,38,22,3,45,21,43,42,12,41,9,21,48,28,7,44,49,16,13,12,11,13,19,44,48,42,1,27,6,49,35,38,36,7,40,32,29,35,24,42,25,34,13}

    5

    Returns: 5.389562780471944E-7

  13. {11,21,17,10,36,29,21,49,44,41,42,41,32,45,19,37,43,4,27,29,12,16,10,40,50,33,32,26,17,46,49,29,16,15,38,1,46,10,49,41,50,41,33,31,37,2,20,29,5,46}

    3

    Returns: 6.249392847217786E-4

  14. {16,13,19,7,13,3,38,38,21,33,39,50,48,3,37,1,50,47,49,40,48,41,25,31,27,26,50,8,32,47,16,47,9,34,5,23,37,43,13,9,27,1,8,27,5,47,27,5,43,25}

    2

    Returns: 0.02630479480220413

  15. {42,18,20,22,46,47,23,5,28,19,21,26,30,4,31,2,42,23,16,1,1,16,10,27,21,6,3,27,50,30,24,42,49,44,13,44,42,36,49,20,6,21,45,37,26,25,41,18,49,6}

    4

    Returns: 2.205187265629854E-5

  16. {50,22,29,26,44,35,29,20,36,10,43,27,8,38,40,1,30,27,1,1,34,21,45,21,49,22,11,16,20,16,37,21,39,17,49,32,3,29,3,39,38,48,15,45,37,6,47,18,34,50}

    2

    Returns: 0.024857624895935404

  17. {18,22,15,40,20,36,50,37,7,17,23,30,8,42,28,39,44,6,44,34,43,41,1,39,27,8,35,47,42,34,14,11,6,28,2,25,15,3,12,22,19,36,1,26,29,30,17,23,35,10}

    3

    Returns: 7.003640300611957E-4

  18. {29,2,8,17,30,16,3,26,9,37,42,21,44,19,22,20,34,26,33,7,44,21,9,22,49,38,40,23,22,1,31,2,2,40,18,31,7,20,9,15,8,50,37,1,20,10,23,3,35,5}

    4

    Returns: 2.787809847952095E-5

  19. {31,25,19,4,24,8,43,46,31,43,28,32,44,18,1,26,24,21,36,41,30,35,29,33,5,39,5,9,25,11,22,7,36,42,10,11,50,2,8,30,44,36,12,39,5,14,17,28,36,2}

    3

    Returns: 7.24410332718799E-4

  20. {24,28,40,2,31,12,27,18,36,44,17,44,3,3,18,31,5,42,43,23,15,4,21,19,6,31,34,24,5,27,8,30,4,49,31,35,12,10,4,47,3,20,43,7,24,12,39,29,3,32}

    6

    Returns: 2.782721565018281E-8

  21. {45,48,40,42,49,44,49,41,41,43}

    14

    Returns: 2.3119104899009693E-14

  22. {44,41,44,40,41,46,44,50,46,49}

    6

    Returns: 7.923897835963811E-6

  23. {46,44,43,41,50,47,42,49,46,47}

    2

    Returns: 0.09839763760468606

  24. {46,50,41,49,46,40,50,49,46,44}

    17

    Returns: 9.714821997909795E-18

  25. {50,42,50,44,47,49,48,43,50,41}

    9

    Returns: 5.777212681979774E-9

  26. {41,42,44,46,45,40,50,50,45,46}

    8

    Returns: 6.482742230434584E-8

  27. {44,42,45,44,41,41,50,43,48,47}

    2

    Returns: 0.09839052535681748

  28. {47,49,40,43,47,41,41,48,46,42}

    3

    Returns: 0.009548267714513897

  29. {40,46,43,40,45,40,43,49,50,47}

    7

    Returns: 7.387570743725265E-7

  30. {42,40,40,41,48,43,50,45,49,44}

    6

    Returns: 8.079087652845126E-6

  31. {50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50}

    2500

    Returns: 0.0

  32. {1, 2 }

    2

    Returns: 0.3333333333333333

  33. {12, 2, 34, 13, 17 }

    4

    Returns: 0.035028830818304504

  34. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    25

    Returns: 1.2450460110604864E-44

  35. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    1250

    Returns: 0.0

  36. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    20

    Returns: 6.80263488208756E-35

  37. {12, 2, 34, 13, 17, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 44, 49, 49, 49, 49 }

    3

    Returns: 8.046688689897095E-4

  38. {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 22, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 }

    789

    Returns: 0.0

  39. {1 }

    1

    Returns: 1.0

  40. {49, 50 }

    51

    Returns: 0.0

  41. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    20

    Returns: 1.7669930459665218E-21

  42. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    51

    Returns: 0.0

  43. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    1250

    Returns: 0.0

  44. {50, 50, 50, 50, 50, 50, 47, 48, 35, 34, 50 }

    49

    Returns: 3.291810245375422E-67

  45. {5, 7 }

    1

    Returns: 1.0

  46. {5, 6, 7 }

    2

    Returns: 0.3006535947712418

  47. {50, 50 }

    10

    Returns: 0.0011868393451716574

  48. {50, 50, 50, 50, 50, 50, 50 }

    250

    Returns: 0.0

  49. {2, 3, 4 }

    6

    Returns: 0.0

  50. {50, 50 }

    25

    Returns: 1.0424788643271385E-9

  51. {50, 30, 50, 10 }

    50

    Returns: 6.713216749208715E-39

  52. {23, 43, 22, 23, 11, 8 }

    7

    Returns: 3.1130312484238564E-4

  53. {3 }

    3

    Returns: 1.0

  54. {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }

    3

    Returns: 0.012578616352201259

  55. {3, 4, 5 }

    3

    Returns: 0.06818181818181818

  56. {40, 30, 50, 50, 50, 40, 40, 50, 40, 40, 40, 40, 40, 40, 50, 50 }

    25

    Returns: 1.9528078204699337E-31

  57. {1, 2, 3 }

    4

    Returns: 0.0

  58. {12, 14, 22, 15, 19, 21, 5, 4, 13, 21, 18, 27, 35, 19, 21, 33, 18, 14, 10, 14, 39, 31, 21, 18, 12, 14, 11, 19, 33, 31, 32, 33, 33, 3, 3, 3, 3, 3, 4, 3, 5, 14, 1, 13, 15, 16, 26, 18, 15, 25 }

    231

    Returns: 0.0

  59. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    100

    Returns: 0.0

  60. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 5, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    51

    Returns: 0.0

  61. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 40, 45, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    1000

    Returns: 0.0

  62. {50, 50 }

    50

    Returns: 1.982330604283667E-29

  63. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    50

    Returns: 3.156947199244522E-104

  64. {49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49 }

    24

    Returns: 6.548139538541121E-35

  65. {13, 50, 50, 50, 50, 49, 34, 34, 34, 34, 34, 34 }

    10

    Returns: 4.148711581146338E-10

  66. {3, 3 }

    3

    Returns: 0.1

  67. {30, 40, 29, 15 }

    40

    Returns: 1.0610933375976087E-31

  68. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    1000

    Returns: 0.0

  69. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 5, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    50

    Returns: 7.742343698780786E-104

  70. {5 }

    5

    Returns: 1.0

  71. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 7, 50, 50, 11, 50, 50, 5, 50, 50, 50, 50, 5, 50, 50, 50, 50, 50, 3, 50, 50, 50, 50, 50, 50, 50, 50, 50, 9, 50, 50, 1, 50, 50, 50, 50, 34, 50, 50, 50 }

    10

    Returns: 6.748651047021557E-16

  72. {21, 44, 24, 41, 10, 19, 29, 27, 46, 4 }

    6

    Returns: 4.822187452684364E-5

  73. {4 }

    4

    Returns: 1.0

  74. {25, 25 }

    50

    Returns: 0.0

  75. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 49, 50, 50, 50, 46, 50, 50, 50, 50, 50, 50, 50, 50, 37, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    4

    Returns: 7.141568899747483E-6

  76. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    50

    Returns: 2.1140618795240286E-84

  77. {50 }

    25

    Returns: 1.0

  78. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    2500

    Returns: 0.0

  79. {1, 2, 3, 4, 5, 6 }

    6

    Returns: 1.842842400117942E-5

  80. {13 }

    8

    Returns: 1.0

  81. {50, 1 }

    50

    Returns: 0.0196078431372549

  82. {2 }

    2

    Returns: 1.0

  83. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    200

    Returns: 0.0

  84. {5, 5 }

    5

    Returns: 0.007936507936507936

  85. {10, 10 }

    7

    Returns: 0.0030959752321981426

  86. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    1225

    Returns: 0.0

  87. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 48, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    50

    Returns: 3.220111924750026E-104

  88. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 7, 50, 50, 11, 50, 50, 5, 50, 50, 50, 50, 5, 50, 50, 50, 50, 50, 3, 50, 50, 50, 50, 50, 50, 50, 50, 50, 9, 50, 50, 1, 50, 50, 50, 50, 34, 50, 50, 50 }

    11

    Returns: 1.2467123948813707E-17

  89. {50, 50, 50, 50, 50, 50, 50, 50, 2, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    50

    Returns: 8.235552401104238E-104

  90. {12, 2, 34, 13, 17 }

    10

    Returns: 1.042249671481569E-4

  91. {50, 50, 50 }

    25

    Returns: 1.9383531093556322E-14

  92. {10, 20, 30, 40, 50 }

    30

    Returns: 1.46372167167487E-18

  93. {1, 2, 3, 5, 26, 34, 8, 12, 45, 45, 49, 37 }

    4

    Returns: 0.003080759697922703

  94. {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }

    2

    Returns: 0.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: