PickTwoMatch
Rookie SRM 19 · 2023-03-17 · by erinn
Problem Statement
You have a set of cards, each with a number from 1 through 10 printed on it. The values of all
the cards you have are given in
If you randomly select two cards, what are the chances they have the same value?
Constraints
- cards will contain between 2 and 50 elements, inclusive.
- Each element of cards will be between 1 and 10, inclusive.
Statement by TopCoder, Inc. — view the original on the archive.
{ 1, 1, 1 }
Returns: 1.0
With all the cards the same value, the two selected are guaranteed to match.
{ 1, 2, 2 }
Returns: 0.3333333333333333
There are three ways to pick two cards, and exactly one of those three gives a match.
{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
Returns: 0.0
It's pretty hard to get a match when all the cards are different.
{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
Returns: 0.08163265306122448
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
Returns: 1.0
Submissions are judged against all 8 archived test cases, of which 5 are shown here. Case numbers match the judge’s.
Language: C++17 · define a public class PickTwoMatch with a public method double chance(vector<int> cards) · 8 test cases · 2 s / 256 MB per case