Problem Statement
One group of bunnies made a device called RandomAnswerer for their final exam. They cannot solve any of the problems, so they will try to answer the questions randomly.
There are m problems numbered 1 through m. The answer for each problem will be one of the integers between 1 and k, inclusive. We also know the following:
- The answer to problem x is different from that of problem x + 1, where 1 <= x < m.
- We have a
int[] linkage containing N * 2 elements. For each i, where 0 <= i < N, the answer to problem linkage[i * 2] is the same as that of linkage[i * 2 + 1]. Note that all elements in linkage are distinct.
Definition
- Class:
- BunnyExam
- Method:
- getExpected
- Parameters:
- int, int, int[]
- Returns:
- double
- Method signature:
- double getExpected(int m, int k, int[] linkage)
- (be sure your method is public)
Notes
- The returned value must have an absolute or relative error less than 1e-9.
Constraints
- m and k will each be between 1 and 1,000,000,000, inclusive.
- linkage will contain between 0 and 20 elements, inclusive.
- linkage will contain an even number of elements.
- Each element of linkage will be between 1 and m, inclusive.
- All elements of linkage will be distinct.
Examples
3
2
{ 1, 3 }
Returns: 1.5
Here problems 1 and 2 have different answers, problems 2 and 3 have different answers and problems 1 and 3 have the same answer. The answers will be either (1, 2, 1) or (2, 1, 2), so the number of correct answers bunnies get will be 3 or 0 with equal probability.
4
2
{ 1, 4 }
Returns: -1.0
This is impossible.
2
8
{ }
Returns: 0.25
linkage may be empty.
1000000000
1
{ 11, 13, 2010, 487 }
Returns: -1.0
128
64
{ 32, 16, 8, 4, 2, 1 }
Returns: -1.0
13
3
{ 1, 3, 7, 9, 13, 10, 6, 2 }
Returns: 4.333333333333333
8
2
{ 1, 4, 5, 8, 2, 7, 3, 6 }
Returns: -1.0
8
3
{ 1, 4, 5, 8, 2, 7, 3, 6 }
Returns: -1.0
8
4
{ 1, 4, 5, 8, 2, 7, 3, 6 }
Returns: 2.0
8
3783591
{ 1, 4, 5, 8, 2, 7, 3, 6 }
Returns: 2.1143934426316165E-6
1000000000
3
{ 999999989, 999999995, 999999987, 999999994, 999999982, 999999996, 999999986, 999999998, 999999988, 999999999, 999999983, 999999992, 999999984, 999999997, 999999990, 1000000000, 999999981, 999999991, 999999985, 999999993 }
Returns: -1.0
1000000000
1000000000
{ 999999989, 999999995, 999999987, 999999994, 999999982, 999999996, 999999986, 999999998, 999999988, 999999999, 999999983, 999999992, 999999984, 999999997, 999999990, 1000000000, 999999981, 999999991, 999999985, 999999993 }
Returns: 1.0
1000000000
2
{ }
Returns: 5.0E8
1
1000000000
{ }
Returns: 1.0E-9
1
1
{ }
Returns: 1.0
1
4
{ }
Returns: 0.25
2
4
{ 1, 2 }
Returns: -1.0
2
4910
{ 1, 2 }
Returns: -1.0
3
1
{ }
Returns: -1.0
3
2
{ }
Returns: 1.5
3
1
{ 1, 3 }
Returns: -1.0
3
2
{ 1, 3 }
Returns: 1.5
4
1
{ 4, 2, 3, 1 }
Returns: -1.0
4
2
{ 4, 2, 3, 1 }
Returns: 2.0
6
2
{ 6, 1 }
Returns: -1.0
6
3
{ 6, 1 }
Returns: 2.0
3762
4
{ 2561, 2628, 879, 3042, 3383, 3384, 562, 2367 }
Returns: -1.0
3762
177908
{ 2561, 2628, 879, 3042, 3383, 3384, 562, 2367 }
Returns: -1.0
79620
4
{ 28059, 5510, 68385, 68384, 12541, 5552 }
Returns: -1.0
79620
6
{ 28059, 5510, 68385, 68384, 12541, 5552 }
Returns: -1.0
9763
4
{ 3834, 3835, 2637, 8563, 7520, 4829, 4159, 1523, 5983, 4477, 3151, 9464, 9664, 4193, 5507, 6043 }
Returns: -1.0
9763
2856948
{ 3834, 3835, 2637, 8563, 7520, 4829, 4159, 1523, 5983, 4477, 3151, 9464, 9664, 4193, 5507, 6043 }
Returns: -1.0
18800429
1
{ 15311717, 3702861, 17811936, 9486478, 3779377, 2245115, 13900461, 8862969, 15886268, 767934, 7009840, 7407384, 9254518, 3986752, 7074291, 18485585, 6772979, 18615931, 16817829, 7812559 }
Returns: -1.0
18800429
2
{ 15311717, 3702861, 17811936, 9486478, 3779377, 2245115, 13900461, 8862969, 15886268, 767934, 7009840, 7407384, 9254518, 3986752, 7074291, 18485585, 6772979, 18615931, 16817829, 7812559 }
Returns: 9400214.5
244184
1
{ 220181, 24491, 79604, 232500, 32527, 159305, 112029, 40439, 122319, 177581, 205295, 164801, 108097, 60955 }
Returns: -1.0
244184
2
{ 220181, 24491, 79604, 232500, 32527, 159305, 112029, 40439, 122319, 177581, 205295, 164801, 108097, 60955 }
Returns: 122092.0
234532
1
{ 62754, 187986, 207945, 146183, 179511, 93369, 186948, 191488, 226840, 114186, 153875, 219657 }
Returns: -1.0
234532
2
{ 62754, 187986, 207945, 146183, 179511, 93369, 186948, 191488, 226840, 114186, 153875, 219657 }
Returns: 117266.0
188
1
{ 180, 50, 63, 163, 124, 184, 114, 88, 54, 30, 149, 103, 9, 129, 100, 38 }
Returns: -1.0
188
2
{ 180, 50, 63, 163, 124, 184, 114, 88, 54, 30, 149, 103, 9, 129, 100, 38 }
Returns: 94.0
20347
1
{ 19385, 16621, 5888, 15172, 8398, 13618, 4375, 8759, 335, 16509, 1738, 17906, 15663, 19827, 2060, 10202, 16952, 8696, 434, 3410 }
Returns: -1.0
20347
2
{ 19385, 16621, 5888, 15172, 8398, 13618, 4375, 8759, 335, 16509, 1738, 17906, 15663, 19827, 2060, 10202, 16952, 8696, 434, 3410 }
Returns: 10173.5
191659685
2
{ 20966408, 127819342, 135297942, 96645857, 136964684, 1814415, 185657395, 72135297, 188549110, 16807844, 56811183, 50449904, 142643738, 10139189, 28362740, 86574783, 76496920, 28904445, 140439011, 178143310 }
Returns: -1.0
191659685
3
{ 20966408, 127819342, 135297942, 96645857, 136964684, 1814415, 185657395, 72135297, 188549110, 16807844, 56811183, 50449904, 142643738, 10139189, 28362740, 86574783, 76496920, 28904445, 140439011, 178143310 }
Returns: 6.3886561666666664E7
276869128
2
{ 18387249, 136694325, 215272606, 12214462, 99046174, 44653157, 244997906, 167081418, 179451541, 19227477, 71968541, 110757225, 276869126, 276869117, 276869127, 276869124, 276869123, 276869118, 276869122, 276869125 }
Returns: -1.0
276869128
3
{ 18387249, 136694325, 215272606, 12214462, 99046174, 44653157, 244997906, 167081418, 179451541, 19227477, 71968541, 110757225, 276869126, 276869117, 276869127, 276869124, 276869123, 276869118, 276869122, 276869125 }
Returns: -1.0
276869128
4
{ 18387249, 136694325, 215272606, 12214462, 99046174, 44653157, 244997906, 167081418, 179451541, 19227477, 71968541, 110757225, 276869126, 276869117, 276869127, 276869124, 276869123, 276869118, 276869122, 276869125 }
Returns: 6.9217282E7
276869128
9
{ 18387249, 136694325, 215272606, 12214462, 99046174, 44653157, 244997906, 167081418, 179451541, 19227477, 71968541, 110757225, 276869126, 276869117, 276869127, 276869124, 276869123, 276869118, 276869122, 276869125 }
Returns: 3.0763236444444444E7
303597
2
{ 202398, 101200, 101204, 101201, 101202, 101199, 349, 231483, 7836, 107878, 101203, 202399, 101174, 259805, 35513, 185068, 224635, 31384, 62462, 110682 }
Returns: -1.0
303597
3
{ 202398, 101200, 101204, 101201, 101202, 101199, 349, 231483, 7836, 107878, 101203, 202399, 101174, 259805, 35513, 185068, 224635, 31384, 62462, 110682 }
Returns: -1.0
303597
4
{ 202398, 101200, 101204, 101201, 101202, 101199, 349, 231483, 7836, 107878, 101203, 202399, 101174, 259805, 35513, 185068, 224635, 31384, 62462, 110682 }
Returns: 75899.25
303597
109
{ 202398, 101200, 101204, 101201, 101202, 101199, 349, 231483, 7836, 107878, 101203, 202399, 101174, 259805, 35513, 185068, 224635, 31384, 62462, 110682 }
Returns: 2785.293577981651
10052
2
{ 3350, 3353, 5325, 8840, 3354, 6701, 9026, 4683, 4682, 8148, 7581, 9025, 8841, 9537, 8149, 5326, 3355, 3352, 6700, 3351 }
Returns: -1.0
10052
3
{ 3350, 3353, 5325, 8840, 3354, 6701, 9026, 4683, 4682, 8148, 7581, 9025, 8841, 9537, 8149, 5326, 3355, 3352, 6700, 3351 }
Returns: -1.0
10052
4
{ 3350, 3353, 5325, 8840, 3354, 6701, 9026, 4683, 4682, 8148, 7581, 9025, 8841, 9537, 8149, 5326, 3355, 3352, 6700, 3351 }
Returns: 2513.0
10052
527078410
{ 3350, 3353, 5325, 8840, 3354, 6701, 9026, 4683, 4682, 8148, 7581, 9025, 8841, 9537, 8149, 5326, 3355, 3352, 6700, 3351 }
Returns: 1.907116628055397E-5
1000000000
2
{ 333333336, 333333333, 500000002, 750000003, 500000003, 250000002, 333333335, 333333338, 333333334, 666666666, 500000001, 500000004, 333333337, 666666667, 250000001, 250000004, 250000003, 750000002, 750000004, 750000001 }
Returns: -1.0
1000000000
3
{ 333333336, 333333333, 500000002, 750000003, 500000003, 250000002, 333333335, 333333338, 333333334, 666666666, 500000001, 500000004, 333333337, 666666667, 250000001, 250000004, 250000003, 750000002, 750000004, 750000001 }
Returns: -1.0
1000000000
4
{ 333333336, 333333333, 500000002, 750000003, 500000003, 250000002, 333333335, 333333338, 333333334, 666666666, 500000001, 500000004, 333333337, 666666667, 250000001, 250000004, 250000003, 750000002, 750000004, 750000001 }
Returns: 2.5E8
1000000000
80
{ 333333336, 333333333, 500000002, 750000003, 500000003, 250000002, 333333335, 333333338, 333333334, 666666666, 500000001, 500000004, 333333337, 666666667, 250000001, 250000004, 250000003, 750000002, 750000004, 750000001 }
Returns: 1.25E7
320567033
2
{ 1, 291424574, 262282116, 174854744, 262282117, 174854745, 58284916, 116569830, 87427373, 29142459, 2, 145712287, 203997202, 233139659 }
Returns: -1.0
320567033
3
{ 1, 291424574, 262282116, 174854744, 262282117, 174854745, 58284916, 116569830, 87427373, 29142459, 2, 145712287, 203997202, 233139659 }
Returns: 1.0685567766666667E8
70
2
{ 41, 57, 62, 47, 6, 21, 42, 1, 52, 11, 31, 36, 16, 26 }
Returns: -1.0
70
3
{ 41, 57, 62, 47, 6, 21, 42, 1, 52, 11, 31, 36, 16, 26 }
Returns: 23.333333333333332
458033
2
{ 61071, 183211, 427494, 213747, 213746, 366423, 274818, 396958, 396959, 91606, 152676, 305353, 244282, 30536, 274817, 335888, 1, 122141 }
Returns: -1.0
458033
3
{ 61071, 183211, 427494, 213747, 213746, 366423, 274818, 396958, 396959, 91606, 152676, 305353, 244282, 30536, 274817, 335888, 1, 122141 }
Returns: 152677.66666666666
46
2
{ 1, 17, 26, 6, 11, 24, 23, 36, 31, 25, 18, 12 }
Returns: -1.0
46
3
{ 1, 17, 26, 6, 11, 24, 23, 36, 31, 25, 18, 12 }
Returns: 15.333333333333334
821201324
2
{ 328480526, 656961051, 574840920, 492720788, 328480525, 739081183, 1, 410600657, 246360394, 656961052, 739081184, 164240263, 574840919, 82120132 }
Returns: -1.0
821201324
3
{ 328480526, 656961051, 574840920, 492720788, 328480525, 739081183, 1, 410600657, 246360394, 656961052, 739081184, 164240263, 574840919, 82120132 }
Returns: 2.737337746666667E8
20
2
{ 5, 9, 7, 10, 18, 3, 12, 6, 4, 1, 14, 19, 17, 13, 8, 20, 11, 16, 2, 15 }
Returns: -1.0
20
3
{ 5, 9, 7, 10, 18, 3, 12, 6, 4, 1, 14, 19, 17, 13, 8, 20, 11, 16, 2, 15 }
Returns: -1.0
20
4
{ 5, 9, 7, 10, 18, 3, 12, 6, 4, 1, 14, 19, 17, 13, 8, 20, 11, 16, 2, 15 }
Returns: 5.0
20
80
{ 5, 9, 7, 10, 18, 3, 12, 6, 4, 1, 14, 19, 17, 13, 8, 20, 11, 16, 2, 15 }
Returns: 0.25
20
2
{ 15, 12, 5, 10, 17, 8, 20, 14, 7, 11, 9, 1, 3, 16, 18, 4, 19, 6, 2, 13 }
Returns: -1.0
20
3
{ 15, 12, 5, 10, 17, 8, 20, 14, 7, 11, 9, 1, 3, 16, 18, 4, 19, 6, 2, 13 }
Returns: -1.0
20
4
{ 15, 12, 5, 10, 17, 8, 20, 14, 7, 11, 9, 1, 3, 16, 18, 4, 19, 6, 2, 13 }
Returns: 5.0
20
83
{ 15, 12, 5, 10, 17, 8, 20, 14, 7, 11, 9, 1, 3, 16, 18, 4, 19, 6, 2, 13 }
Returns: 0.24096385542168675
20
2
{ 19, 9, 11, 6, 3, 12, 2, 17, 8, 14, 7, 4, 20, 16, 1, 18, 10, 15, 13, 5 }
Returns: -1.0
20
3
{ 19, 9, 11, 6, 3, 12, 2, 17, 8, 14, 7, 4, 20, 16, 1, 18, 10, 15, 13, 5 }
Returns: -1.0
20
4
{ 19, 9, 11, 6, 3, 12, 2, 17, 8, 14, 7, 4, 20, 16, 1, 18, 10, 15, 13, 5 }
Returns: 5.0
20
188867389
{ 19, 9, 11, 6, 3, 12, 2, 17, 8, 14, 7, 4, 20, 16, 1, 18, 10, 15, 13, 5 }
Returns: 1.0589440615393905E-7
20
2
{ 19, 6, 1, 14, 13, 9, 20, 10, 15, 8, 17, 5, 12, 7, 16, 2, 18, 4, 3, 11 }
Returns: -1.0
20
3
{ 19, 6, 1, 14, 13, 9, 20, 10, 15, 8, 17, 5, 12, 7, 16, 2, 18, 4, 3, 11 }
Returns: 6.666666666666667
20
2
{ 17, 5, 7, 2, 6, 14, 15, 19, 4, 8, 13, 11, 16, 9, 12, 10, 3, 1, 20, 18 }
Returns: -1.0
20
3
{ 17, 5, 7, 2, 6, 14, 15, 19, 4, 8, 13, 11, 16, 9, 12, 10, 3, 1, 20, 18 }
Returns: 6.666666666666667
20
2
{ 13, 7, 5, 11, 17, 10, 1, 4, 9, 20, 2, 15, 18, 16, 8, 19, 14, 3, 6, 12 }
Returns: -1.0
20
3
{ 13, 7, 5, 11, 17, 10, 1, 4, 9, 20, 2, 15, 18, 16, 8, 19, 14, 3, 6, 12 }
Returns: 6.666666666666667
20
2
{ 10, 2, 9, 6, 7, 18, 15, 12, 13, 20, 17, 1, 16, 4, 11, 19, 14, 8, 5, 3 }
Returns: -1.0
20
3
{ 10, 2, 9, 6, 7, 18, 15, 12, 13, 20, 17, 1, 16, 4, 11, 19, 14, 8, 5, 3 }
Returns: 6.666666666666667
20
2
{ 7, 3, 17, 1, 9, 12, 6, 19, 16, 4, 18, 2, 15, 8, 11, 5, 10, 14, 13, 20 }
Returns: -1.0
20
3
{ 7, 3, 17, 1, 9, 12, 6, 19, 16, 4, 18, 2, 15, 8, 11, 5, 10, 14, 13, 20 }
Returns: 6.666666666666667
20
1
{ 18, 20, 3, 15, 11, 9, 6, 12, 8, 10, 7, 5, 14, 4, 16, 2, 17, 1, 19, 13 }
Returns: -1.0
20
2
{ 18, 20, 3, 15, 11, 9, 6, 12, 8, 10, 7, 5, 14, 4, 16, 2, 17, 1, 19, 13 }
Returns: 10.0
20
2
{ 6, 17, 2, 11, 20, 1, 4, 18, 13, 8, 3, 10, 15, 7, 16, 12, 9, 19, 5, 14 }
Returns: -1.0
20
3
{ 6, 17, 2, 11, 20, 1, 4, 18, 13, 8, 3, 10, 15, 7, 16, 12, 9, 19, 5, 14 }
Returns: 6.666666666666667
20
2
{ 20, 8, 1, 14, 16, 6, 10, 13, 5, 17, 19, 2, 15, 18, 3, 9, 12, 4, 11, 7 }
Returns: -1.0
20
3
{ 20, 8, 1, 14, 16, 6, 10, 13, 5, 17, 19, 2, 15, 18, 3, 9, 12, 4, 11, 7 }
Returns: 6.666666666666667
20
2
{ 19, 7, 2, 12, 16, 18, 1, 17, 3, 13, 15, 11, 9, 6, 20, 5, 8, 4, 10, 14 }
Returns: -1.0
20
3
{ 19, 7, 2, 12, 16, 18, 1, 17, 3, 13, 15, 11, 9, 6, 20, 5, 8, 4, 10, 14 }
Returns: -1.0
20
4
{ 19, 7, 2, 12, 16, 18, 1, 17, 3, 13, 15, 11, 9, 6, 20, 5, 8, 4, 10, 14 }
Returns: 5.0
20
653
{ 19, 7, 2, 12, 16, 18, 1, 17, 3, 13, 15, 11, 9, 6, 20, 5, 8, 4, 10, 14 }
Returns: 0.030627871362940276
20
2
{ 13, 4, 16, 2, 15, 9, 1, 8, 3, 6, 10, 20, 17, 7, 12, 5, 11, 18, 19, 14 }
Returns: -1.0
20
3
{ 13, 4, 16, 2, 15, 9, 1, 8, 3, 6, 10, 20, 17, 7, 12, 5, 11, 18, 19, 14 }
Returns: -1.0
20
4
{ 13, 4, 16, 2, 15, 9, 1, 8, 3, 6, 10, 20, 17, 7, 12, 5, 11, 18, 19, 14 }
Returns: 5.0
20
227
{ 13, 4, 16, 2, 15, 9, 1, 8, 3, 6, 10, 20, 17, 7, 12, 5, 11, 18, 19, 14 }
Returns: 0.0881057268722467
8
3
{ 4, 1, 5, 8, 2, 7, 3, 6 }
Returns: -1.0
8
3
{ 1, 4, 8, 5, 2, 7, 3, 6 }
Returns: -1.0
8
3
{ 4, 1, 8, 5, 2, 7, 3, 6 }
Returns: -1.0
13
3
{1, 7, 2, 5, 3, 6, 4, 8 }
Returns: -1.0
333
3
{1, 4, 2, 8, 3, 6, 5, 7 }
Returns: -1.0
100
3
{1, 4, 2, 6, 3, 8, 5, 7 }
Returns: -1.0
8
3
{1, 4, 2, 7, 3, 6, 5, 8 }
Returns: -1.0
10
3
{1, 7, 2, 9, 3, 6, 4, 8 }
Returns: -1.0
8
3
{1, 7, 2, 5, 3, 6, 4, 8 }
Returns: -1.0
9
3
{1, 8, 2, 5, 3, 7, 4, 9 }
Returns: -1.0
10
3
{1, 5, 2, 10, 3, 6, 4, 9 }
Returns: -1.0
30
3
{22, 1, 4, 14, 12, 9, 8, 28, 10, 29, 7, 20, 11, 27, 25, 19 }
Returns: -1.0
8
3
{1, 4, 3, 8, 2, 6, 5, 7 }
Returns: -1.0
8
3
{1, 4, 2, 6, 5, 7, 3, 8 }
Returns: -1.0
8
3
{1, 4, 2, 6, 3, 8, 5, 7 }
Returns: -1.0
13
3
{1, 4, 5, 8, 2, 7, 3, 6 }
Returns: -1.0
935346643
935346642
{234, 23, 53, 22335, 4643, 11232, 876, 68, 124, 85543, 2655, 86, 934, 365, 6452, 63565, 1111, 54234, 6533, 242323 }
Returns: 1.0000000010691223
8
3
{1, 4, 2, 8, 3, 6, 5, 7 }
Returns: -1.0
1000000000
3
{100008, 100011, 100010, 100004, 100006, 100009, 100005, 100002, 100003, 100007 }
Returns: -1.0
10
2
{1, 6 }
Returns: -1.0
1000000000
3
{1, 4, 2, 8, 3, 6, 5, 7 }
Returns: -1.0
13
3
{1, 5, 2, 8, 3, 6, 4, 7 }
Returns: -1.0
100
3
{1, 12, 2, 10, 3, 13, 4, 11 }
Returns: -1.0
999999999
3
{1, 7, 2, 9, 3, 6, 5, 8 }
Returns: -1.0
8
3
{1, 4, 2, 6, 3, 7, 5, 8 }
Returns: -1.0
10
3
{1, 4, 5, 8, 2, 7, 3, 6 }
Returns: -1.0
1000
3
{2, 5, 3, 6, 4, 8, 1, 7 }
Returns: -1.0
10
1
{ }
Returns: -1.0
8
3
{1, 6, 2, 4, 3, 7, 5, 8 }
Returns: -1.0
1000000000
3
{1, 6, 2, 9, 3, 7, 5, 8 }
Returns: -1.0
10
3
{7, 3, 10, 6, 4, 9, 2, 5 }
Returns: -1.0
10
2
{1, 10 }
Returns: -1.0
8
3
{3, 6, 5, 8, 2, 4, 7, 1 }
Returns: -1.0
100000
3
{1, 5, 2, 7, 3, 6, 4, 8 }
Returns: -1.0
8
3
{1, 5, 2, 7, 3, 6, 4, 8 }
Returns: -1.0
6
2
{1, 6 }
Returns: -1.0
20
3
{1, 4, 2, 8, 3, 6, 5, 7 }
Returns: -1.0
6
3
{1, 4, 2, 6, 3, 5 }
Returns: 2.0
20
3
{1, 4, 2, 6, 3, 8, 5, 7 }
Returns: -1.0
100000
3
{ }
Returns: 33333.333333333336
10
3
{1, 4, 7, 2, 5, 8, 9, 3, 10, 6 }
Returns: -1.0
10
3
{1, 7, 2, 5, 3, 6, 4, 8 }
Returns: -1.0
8
3
{1, 4, 5, 8, 2, 7, 3, 6 }
Returns: -1.0
9
3
{1, 4, 2, 9, 3, 7, 5, 8 }
Returns: -1.0