Problem Statement
mean = ( s(0) + s(1) + s(2) + ... + s(n-1) )/n varsum = (mean-s(0))^2 + (mean-s(1))^2 + ... + (mean-s(n-1))^2 variance = varsum/nThe subset will be returned as a
Definition
- Class:
- WhichData
- Method:
- bestVariance
- Parameters:
- int[], int, int
- Returns:
- int[]
- Method signature:
- int[] bestVariance(int[] sampleData, int varNum, int varDen)
- (be sure your method is public)
Notes
- doubles will provide enough precision to properly solve this problem. Given two subsets, s1 and s2, the difference between |variance(s1)-varNum/varDen| and |variance(s2)-varNum/varDen| will be either 0, or greater than 1e-9, where variance(x) is the variance of subset x.
Constraints
- varNum will be between 0 and 10000 inclusive.
- varDen will be between 1 and 10000 inclusive.
- sampleData will contain between 2 and 16 elements inclusive.
- Each element of sampleData will be between -10000 and 10000 inclusive.
Examples
{1,2,3,4,5,6,7,8}
40
20
Returns: { 1, 2, 3, 4, 5 }
The variance should be 40/20 = 2. The set of numbers {1,2,3,4,5} has mean = (1+2+3+4+5)/5 = 3 varsum = 2^2 + 1^2 + 0^2 + 1^2 + 2^2 = 10 variance = 10/5 = 2
{1,2,3,4,5,6,7,8}
20
40
Returns: { 1, 2, 3 }
{1,2,3,4,5,6,7,8}
9
1
Returns: { 1, 7 }
{1,2,3,4,5,6,7,8}
6
1
Returns: { 1, 2, 4, 5, 8 }
{-10000,10000,-9999,9999,-9998,9000}
10000
1
Returns: { -10000, -9998 }
{-10000,10000,-9999,9999,-9998,9998,1,1,2,2}
9999
10000
Returns: { -10000, -9998 }
{10000,10000,10000,10000,10000,10000,10000,10000,10000,10000, 10000,10000,10000,10000,10000,9999}
500
10000
Returns: { 9999, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000 }
{500,500,500,500,500,500,500,580, 100,100,100,100,100,100,100,180}
700
1
Returns: { 100, 100, 100, 100, 100, 100, 100, 180 }
{100,100,100,140, 200,200,200,240, 300,300,300,340, 9900,9900,9900,9939}
3218
11
Returns: { 9900, 9900, 9900, 9939 }
{100,100,100,140, 200,200,200,240, 300,300,300,340, 9900,9900,9900,9939}
3219
11
Returns: { 100, 100, 100, 140 }
{500,500,500,500,500,500,500,581, 100,100,100,100,100,100,100,180}
7797
11
Returns: { 500, 500, 500, 500, 500, 500, 500, 581 }
{500,500,500,500,500,500,500,581, 100,100,100,100,100,100,100,180}
7796
11
Returns: { 100, 100, 100, 100, 100, 100, 100, 180 }
{10,10,10,10,10,10}
0
9999
Returns: { 10 }
{ 43, 67, 81, 89, 90, 70, 71, 76, 92, 99, 8, 15, 16, 23, 34, 36 }
8435
584
Returns: { 67, 70, 76 }
{-8125,-7919,-7820,-5898,547,1831,3110,6871,8950,8970,9803}
841
111
Returns: { -8125 }
{-9875,-9522,-6753,-6583,-4146,-2589,-320,-291,-230,1669,2681,4329,4500,6656,8470,9816}
8932
14
Returns: { -291, -230 }
{-7169,-6806,-5307,-4197,-3863,-298,-70,2344,3337,5932,6846,7857,8503,8523,9168}
8059
216
Returns: { -7169 }
{-7695,-7065,-6323,-5973,-5961,-3926,-3684,-161,582,763,863,1469,2110,5797,8738}
672
13
Returns: { -5973, -5961 }
{-8530,-7566,-6171,-5831,-3499,-2120,612,2073,2354,7188,9605,9619}
4553
118
Returns: { 9605, 9619 }
{-7631,-7630,-6311,-6070,-3384,-3363,-1131,850,2313,4735,6471,7141,9484}
8349
1
Returns: { -6311, -6070 }
{-9750,-8118,-7486,-5570,-5568,-4692,-3558,-3144,1863,3613,8284,8313,8377,8547}
1100
2309
Returns: { -9750 }
{-2602,-2572,-1417,1081,1746,2441,2572,2762,3039,4307,4351,5946,9946}
9212
37
Returns: { -2602, -2572 }
{-7316,-6148,-4041,-4032,-3656,-3625,-3339,-2185,-2096,2387,4823,6171}
5358
541
Returns: { -7316 }
{-9884,-8792,-8772,-5223,-4039,-3226,-1832,-1610,3384}
6570
81
Returns: { -8792, -8772 }
{-7581,-5509,-4619,1198,2062,2634,2684,3903,5225,6463,7279,8070,8928}
8661
6
Returns: { 2634, 2684 }
{-8513,-5539,-4769,-4115,-294,-186,2880,3524,7345,8316,8665,8830,9055,9608}
7613
3
Returns: { -294, -186 }
{-4725,-1248,-122,338,730,2992,3005,4424,7061}
8798
430
Returns: { -4725 }
{-9131,-7815,-500,1837,1840,5209,5777,5846}
2378
2160
Returns: { -9131 }
{-7193,-6606,-6597,413,1121,3145}
3399
245
Returns: { -6606, -6597 }
{-9834,-8679,-1911,-1748,-167,-122,2204,4296,5599,6279,6412}
6069
23
Returns: { -167, -122 }
{-9529,-9490,-7898,-6553,-3226,-459,1612,2481,3265,4682,5923,7236,7814,8715}
6722
32
Returns: { -9529, -9490 }
{-8942,-8070,-7791,-6036,-2643,-1039,-231,175,3243,6773,6785,6885,8451}
7250
429
Returns: { -8942 }
{-9975,-8164,-5966,-3162,5212,5767,6473,6563,8330,9978}
2046
102
Returns: { -9975 }
{-7672,-7319,-6345,-3238,-632,-618,2692,5490,8850,9112,9228}
2386
158
Returns: { -7672 }
{-7492,-7489,-6882,-4460,-3054,3940,4656,6521,6611,9826}
8250
7383
Returns: { -7492 }
{1397,-6457,1395,9154,-696}
1178
2157
Returns: { 1395, 1397 }
{7493,-9819,7540,227,5117,-8095,9251}
6805
108
Returns: { -9819 }
{8402,629,4277,7254,15,-3136,8069,-8165,-6536,-8749,6818,7238}
8164
327
Returns: { -8749 }
{-5362,-2101,4197,-8132,5752,8854,-1919,2003,-2722,-1909,7388,-6989,-6945}
3857
238
Returns: { -1919, -1909 }
{4638,8862,1898,8469,-9854,-3392,1886,6042,-367,7372,-6138,-7924,5519,4153}
6520
426
Returns: { -9854 }
{2408,-4773,-2211,-735,8215,7173,-8882,995,-6547,6289,4178,7598,-2711,-2247,1580}
9434
5
Returns: { -2247, -2211 }
{5168,8048,-9627,-4845,-704,6234,2739,-7735,6551,-2353,9945,-5746,2878,4090,5145,-3759}
1656
108
Returns: { -9627 }
{4789,522,8450,1104,2795,2647}
7107
2
Returns: { 2647, 2795 }
{340,7008,7796,7019,-2575,-1435,-6959,-1653,-962,-9540,2780,187,5794,-2918,-5654,4271}
9481
706
Returns: { -9540 }
{-7504,-6776,2087,7132,-2949,-2544,8022,455,7148,6980,-3534,2579,6693,-8717,-566}
9446
375
Returns: { -8717 }
{-218,5470,-3212,855,-5485,-6353,3443,9156,9151,-1450,-1845,5033,5808,-260}
9200
3037
Returns: { -6353 }
{-2593,2204,4823,951,-6662,-7662,-2714,9048,5071,9838,-9351,9792,-2859,5815}
9085
17
Returns: { 9792, 9838 }
{3580,-5908,-8215,2378,-6539,4933,6754,1569,5542,-3408,-7609,1587,-8672,-7099,7114}
9057
274
Returns: { -8672 }
{4301,4095,-6384,-3717,9355,-6611,-2634,9764,9395,-2074,-6622,-8489,235,1837,-7194,4577}
9160
38
Returns: { 9355, 9395 }
{9463,9131,-6764,-1358,-9738,-2545,4117,9459,-9191}
5702
2917
Returns: { -9738 }
{8381,4407,-854,-200,9096,5675,4383,2081,487}
6966
137
Returns: { -854 }
{-8198,-6374,-6942,8334,7326,-5553,3990,-6518,7401,-4568,-9106,7458}
2392
105
Returns: { -9106 }
{9120,-7565,-7574,-6804,-1406,6573,5721,-8233,2075,-2790}
9192
821
Returns: { -7574, -7565 }
{747,7407,-1212,-2835,9491,-3855,-7362,-9422,769,-6652}
5886
3
Returns: { 747, 769 }
{8233,-3413,-6821,-3640,-3398,1082,224,8379,-2334,714,-7200,8582,-6445,-7299}
6138
196
Returns: { -3413, -3398 }
{-9922,-3876,9654,-6113,8173,-3034,-2985,7188,7965}
7845
120
Returns: { -9922 }
{-9302,4598,381,-4305,1886,-3186,9760,-8221,1305,-3258,-9278,-2938,5185,-9175,-770,8458}
4685
110
Returns: { -9302 }
{4562,9580,8440,9065,-8210,2228,-5029,4792,-8202,6064,-5482,-562,9427,4571,3417}
2446
91
Returns: { 4562, 4571 }
{-5682,-8016,-6493,-8884,-5533,-6528,-1753,-4831,1004,-199,-5676,9083,9660,-3583}
305
127
Returns: { -8884 }
{6256,5835,-9859,6081,-5656,-6494,5891,4404,2758,9897,-6674,8080,-2813,-3643}
5165
11
Returns: { 5835, 5891 }
{10,10,10,10,10,10,10,10, -10,-10,-10,-10,-10,-10,-10,-10}
10000
1
Returns: { -10, -10, -10, -10, -10, -10, -10, -10, 10, 10, 10, 10, 10, 10, 10, 10 }
{1,-14,13,15,-9,-6,-7,-5,10,9,9,-8,12,3,-10,-3}
5452
136
Returns: { -14, -10, -9, -8, -7, -6, -5, -3, 1, 10 }
{4,5,-11,-4,-2,-5,12,9,13,2,-7,0,10,-1,-14,-13}
9959
155
Returns: { -14, -13, -11, -7, -5, -4, -2, 2, 9, 10 }
{-1,2,1,10,8,12,-5,-1,12,2,4,-14,-3,-8,-2,0}
9592
130
Returns: { -14, -8, -5, -3, -1, -1, 8, 10, 12, 12 }
{5,-8,0,-2,13,0,0,8,-8,0,8,-8,-9,1,3,13}
6280
165
Returns: { -8, -8, -2, 0, 0, 0, 1, 3, 8, 8, 13 }
{4,1,3,11,0,-10,-4,-1,0,-12,3,12,-4,0,-5,-4}
8407
406
Returns: { -5, -4, -4, -4, -1, 0, 0, 0, 1, 3, 12 }
{-7,-2,0,-10,6,8,9,1,12,1,-13,9,-8,-10,8,10}
2023
57
Returns: { -10, -2, 0, 1, 1, 6, 8, 8, 9, 10 }
{3,-11,13,14,9,-1,-2,6,8,12,6,-4,6,11,-14,-5}
4378
76
Returns: { -11, -5, -4, -2, -1, 6, 6, 6, 9, 13, 14 }
{13,2,12,4,12,8,9,-13,3,-1,0,8,9,8,-11,-7}
4238
275
Returns: { 0, 2, 4, 8, 8, 8, 9, 9, 12, 13 }
{-12,-4,-10,0,-11,-7,-2,-12,4,10,-5,-2,0,-3,5,6}
3537
151
Returns: { -11, -10, -7, -5, -4, -3, -2, -2, 0, 4, 5 }
{-8,-5,7,-4,4,-5,12,14,7,-3,1,5,-1,-9,-1,0}
2677
45
Returns: { -9, -8, -5, -5, -3, -1, -1, 7, 12, 14 }
{13,6,1,-13,15,-7,13,0,15,-3,11,15,2,0,-12,15}
4154
35
Returns: { -13, -12, -3, 6, 13, 13, 15, 15, 15, 15 }
{2,5,8,15,-14,0,-2,3,0,-10,-3,-9,6,-13,4,-1}
5787
170
Returns: { -14, -10, -3, -1, 0, 0, 2, 3, 4, 5 }
{0,-14,10,-11,5,6,5,14,-4,-9,-1,7,-14,5,3,-5}
5531
76
Returns: { -14, -14, -11, -9, -4, 3, 5, 5, 5, 6, 10 }
{2,12,-11,13,1,0,0,3,-8,12,0,-4,0,-2,13,10}
4512
129
Returns: { -11, -8, -4, -2, 0, 0, 0, 1, 2, 3, 13 }
{5,14,2,-14,-4,8,12,-12,15,-12,13,14,0,12,0,10}
3794
44
Returns: { -14, -12, -4, 0, 0, 2, 5, 8, 13, 14, 14 }
{10,-7,12,-2,-5,8,2,13,-5,6,15,5,-3,-5,1,2}
7219
122
Returns: { -7, -5, -5, -5, 1, 2, 5, 8, 12, 13, 15 }
{5,5,6,11,9,6,5,-8,4,-11,13,12,3,-14,1,-14}
8957
864
Returns: { 3, 4, 5, 5, 5, 6, 6, 9, 12, 13 }
{-14,-3,-1,10,-5,0,13,6,11,9,5,6,3,-2,0,2}
5061
225
Returns: { -5, -3, -2, -1, 0, 2, 5, 6, 6, 11 }
{-14,1,-11,-4,8,-2,2,-10,-5,-13,-8,0,2,4,-12,10}
6296
101
Returns: { -14, -13, -12, -11, -10, -5, -4, 0, 1, 2, 8, 10 }
{11,0,-2,-9,6,4,7,-4,-2,8,-11,-5,8,-4,2,10}
9276
183
Returns: { -11, -9, -4, -4, -2, 0, 2, 6, 8, 8, 10, 11 }
{-11,6,10,6,8,10,-4,15,11,14,0,-10,15,-3,3,9}
9120
165
Returns: { -10, -4, 0, 6, 6, 8, 9, 10, 11, 15, 15 }
{4,-13,2,-2,-4,8,-13,5,9,2,0,-4,5,-10,-1,-1}
8831
257
Returns: { -13, -10, -4, -4, -2, -1, 2, 4, 5, 5 }
{4,-5,7,6,11,0,6,3,12,1,8,-14,0,-3,5,11}
7322
142
Returns: { -14, -5, -3, 0, 0, 4, 5, 6, 7, 8, 11, 11, 12 }
{0,11,13,14,2,-13,14,11,10,0,11,4,-7,-5,-7,0}
9888
183
Returns: { -7, -7, 0, 0, 2, 10, 11, 11, 11, 13 }
{7,-9,-3,0,3,-12,3,-6,6,2,-8,-7,-12,8,14,-6}
8069
114
Returns: { -12, -12, -9, -8, -7, -6, -3, 2, 7, 8, 14 }
{3,-7,-14,5,-13,10,1,-13,7,-9,-5,7,2,1,-3,0}
9845
198
Returns: { -14, -13, -9, -7, -5, -3, 0, 1, 3, 5, 7, 7 }
{0,-10,0,1,-8,-3,9,-2,-12,12,-9,-6,-13,-9,8,14}
3723
155
Returns: { -13, -12, -10, -9, -9, -6, -3, -2, 0, 0, 1 }
{6,4,6,10,-4,9,12,0,12,15,0,6,-6,8,-3,11}
6274
174
Returns: { -6, -4, -3, 0, 0, 4, 6, 6, 6, 11, 12, 12 }
{3,7,4,-8,1,0,8,-8,4,-1,-8,0,0,-13,10,-6}
5277
429
Returns: { -1, 0, 0, 0, 1, 3, 4, 4, 8, 10 }
{-10,7,-11,0,-4,0,12,5,-13,-9,-5,-5,-10,-4,-8,0}
6349
228
Returns: { -13, -11, -10, -10, -9, -8, -5, -4, 0, 5 }
{-1,5,2,-13,12,2,8,8,-14,8,13,10,14,8,0,15}
7598
336
Returns: { -1, 0, 2, 2, 5, 8, 8, 8, 10, 15 }
{0,-5,0,-4,0,-8,-4,0,-5,-7,-14,12,4,-3,-4,-7}
9638
761
Returns: { -8, -7, -7, -5, -5, -4, -4, 0, 0, 0, 0, 4 }
{-6,-9,-1,7,14,-5,4,1,3,-12,8,-3,-14,4,-5,8}
5610
89
Returns: { -14, -12, -9, -1, 1, 4, 4, 7, 8, 8 }
{-14,4,-11,-9,-9,7,-11,-11,-5,5,-5,-2,-7,-9,12,1}
7803
275
Returns: { -11, -9, -9, -7, -5, -5, -2, 1, 4, 5 }
{-7,4,-10,-8,-3,-12,6,4,10,-14,-10,-9,7,-6,10,2}
9272
140
Returns: { -14, -12, -10, -10, -6, -3, 2, 4, 6, 7, 10 }
{15,9,0,12,12,-9,-7,0,7,1,14,-9,8,-13,3,10}
8254
210
Returns: { -7, 0, 0, 3, 7, 8, 9, 10, 12, 12, 15 }
{-9,2,-1,3,-5,6,6,-7,13,-12,-10,5,-11,7,-2,13}
9922
132
Returns: { -12, -11, -10, -9, -7, -2, -1, 2, 6, 6, 13, 13 }
{9,1,1,5,-10,2,3,14,4,11,0,14,-7,2,-13,-12}
8231
143
Returns: { -13, 1, 2, 2, 3, 5, 9, 11, 14, 14 }
{-5,-8,-4,6,14,-12,-14,-12,0,-3,-5,-8,-5,-5,15,10}
3237
133
Returns: { -14, -12, -8, -8, -5, -5, -5, -5, -4, -3, 6 }
{7,-5,6,-11,-10,10,3,-9,0,15,-1,3,15,3,15,13}
1727
32
Returns: { -10, -9, 0, 3, 3, 3, 6, 7, 10, 15 }
{13,12,12,-11,7,10,6,10,10,-13,4,14,-5,1,-4,11}
9198
299
Returns: { -5, 1, 6, 7, 10, 10, 11, 12, 12, 14 }
{-9,0,-1,3,9,2,9,-2,4,10,7,-1,14,0,-10,14}
8914
357
Returns: { -1, 0, 2, 3, 4, 7, 9, 9, 10, 14, 14 }
{-9,-11,4,-14,-4,2,-10,-5,-11,-6,9,13,6,6,3,13}
8435
183
Returns: { -14, -11, -11, -10, -9, -5, -4, 3, 4, 6 }
{14,0,-9,2,7,-2,0,13,10,2,4,10,7,-11,0,6}
7988
151
Returns: { -11, -9, -2, 0, 0, 2, 2, 4, 7, 7, 10, 13, 14 }
{-14,0,13,9,-2,7,0,-1,14,-5,-12,-9,1,15,1,0}
2725
79
Returns: { -14, -9, -5, -2, -1, 0, 0, 0, 1, 9 }
{8,-5,-13,-8,-2,-6,-8,7,2,10,-13,-3,7,0,-14,-8}
4264
112
Returns: { -13, -13, -8, -8, -8, -6, -5, -3, -2, 0, 10 }
{0,-13,15,5,5,-7,-6,-7,-8,4,-12,-13,14,9,-3,-1}
9262
197
Returns: { -13, -13, -12, -7, -7, -6, -3, 4, 5, 5 }
{8,9,6,12,13,3,4,13,3,-6,6,7,-3,4,14,-3}
6684
491
Returns: { 3, 4, 6, 6, 7, 8, 9, 13, 13, 14 }
{ 40, 227, 248, 250, 278, 299, 310, 393, 438, 470, 504, 559, 573, 616, 631, 981 }
8252
938
Returns: { 248, 250 }
{ 2, 5, 8, 15, -14, 0, -2, 3, 0, -10, -3, -9, 6, -13, 4, -1 }
5787
170
Returns: { -14, -10, -3, -1, 0, 0, 2, 3, 4, 5 }
{ 0, 0, 1, 1 }
1
4
Returns: { 0, 0, 1, 1 }