Problem Statement
Definition
- Class:
- CalculationCards
- Method:
- getExpected
- Parameters:
- String[]
- Returns:
- double
- Method signature:
- double getExpected(String[] cards)
- (be sure your method is public)
Notes
- The returned value must have an absolute or relative error less than 1e-9.
Constraints
- cards will contain between 1 and 50 elements, inclusive.
- Each element of cards will contain exactly 2 characters.
- The first character in each element of cards will be either '+', '-' or '*'.
- The second character in each element of cards will be a digit ('0' - '9').
Examples
{ "+1", "-2", "*3" }
Returns: -1.6666666666666667
One of the following expressions will be made with equal probability: 0 + 1 - 2 * 3 = -5 0 + 1 * 3 - 2 = 1 0 - 2 + 1 * 3 = 1 0 - 2 * 3 + 1 = -5 0 * 3 + 1 - 2 = -1 0 * 3 - 2 + 1 = -1
{ "+1", "+2", "+3" }
Returns: 6.0
The value will always be 6.
{ "+3", "-7", "*4", "+6" }
Returns: 3.5
{ "+1", "*2", "*3" }
Returns: 3.1666666666666665
{ "*7", "-2", "*0", "+3", "*8" }
Returns: 5.633333333333334
{ "+1", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9" }
Returns: 3.5660295009090906E8
{"-9", "-7", "+8", "+8", "-9", "+9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9"}
Returns: 0.0
{ "+6" }
Returns: 6.0
{ "-1" }
Returns: -1.0
{ "*1" }
Returns: 0.0
{ "*6", "*8", "*4", "*5", "*1", "*1", "*1", "*7", "*7", "*1", "*0", "*0", "*7", "*2", "*3", "*6", "*5", "*2", "*8", "*4", "*8", "*5", "*8", "*7", "*8", "*3", "*8", "*7", "*4", "*3", "*4", "*5", "*6", "*0", "*6", "*0", "*8", "*1", "*5", "*7", "*6", "*0", "*3", "*3", "*3", "*1", "*5", "*1", "*6", "*8" }
Returns: 0.0
{ "+1", "+7", "-5", "+7", "-6", "-3", "-1", "-2", "+4", "+4", "-0", "-4", "*0", "*8", "*2", "*0", "*8", "*3", "*3", "*2", "*2", "*2", "*4", "*0", "*0", "*6", "*2", "*1", "*8", "*8", "*7", "*1", "*8", "*6", "*6", "*1", "*0", "*1", "*3", "*6", "*0", "*3", "*6", "*1", "*4", "*1", "*2", "*8", "*3", "*1" }
Returns: 1985605.4307536348
{ "+5", "-7", "-5", "-4", "+4", "+4", "-5", "-6", "+7", "+1", "+6", "+1", "+5", "-4", "-1", "+1", "-4", "+7", "+2", "+3", "-2", "+7", "-4", "+7", "-6", "+3", "+5", "+4", "+4", "+2", "-6", "+6", "+2", "-6", "+2", "-6", "-6", "+8", "-8", "+6", "-8", "-4", "+7", "-3", "+1", "+3", "-2", "+3", "-3", "+5" }
Returns: 21.0
{ "+0", "-0", "+0", "-0", "+0", "-0", "+0", "+0", "+0", "+0", "+0", "-0", "-0", "-0", "-0", "+0", "-0", "+0", "-0", "-0", "+0", "+0", "-0", "-0", "+0", "+0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0" }
Returns: 0.0
{ "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "+1", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0" }
Returns: 0.02
{ "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "*0", "-1", "*0", "*0", "*0", "*0", "*0", "*0", "*0" }
Returns: -0.02
{ "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "+9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9" }
Returns: 1.1595994216470254E46
{ "*9", "-9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9" }
Returns: -1.1595994216470254E46
{ "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "-9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "*9", "+9", "*9", "*9", "*9", "*9" }
Returns: 0.0
{ "+8", "*4", "*3", "+6", "*2", "*3", "*0", "*0", "*7", "*2", "*3", "*6", "*0", "*5", "*2", "*4", "*4", "*5", "+0", "-8", "*8", "*4", "-4", "-5", "-8", "*1", "-1", "*6", "*0", "*1", "*1", "*6", "*5", "-2", "-2" }
Returns: -144466.71629718354
{ "*8", "*3", "-3", "*7", "+4", "*5", "-7", "-8", "+5", "+0", "*6", "+4", "+8", "+1", "+7", "-6", "-7", "+8", "*1" }
Returns: 46.2109243697479
{ "*6", "*2", "*4", "*1", "*5", "*3", "*8", "*3", "*7", "*5", "+6", "*3", "*2", "*5", "+6", "*8", "*6" }
Returns: 1.561613785006993E8
{ "+3", "-1", "+1", "+7", "-7", "-4", "-0", "+8", "-6", "+0", "-4", "+5", "+6", "-2", "+1", "+8", "-5", "+1", "-7", "-4", "-7", "+1", "-0", "*4", "*1", "*8", "+6", "+6", "+3", "-2", "-6", "+1", "+4", "+2", "+5", "+3", "+2", "-1", "+5", "+6" }
Returns: 36.16194331983806
{ "+0", "*3", "-1", "+8", "*0", "-1", "-1", "+1", "+4", "+0", "+5", "+5", "*4", "-3", "+6", "*5", "+3", "+8", "*8", "-0", "+6", "*5", "+7", "-7", "*1", "-2", "-8", "-6", "-5", "-1", "+1", "-6", "-7", "+0", "+1", "+5", "+5", "+0", "-8", "+6", "+6", "-0", "+8" }
Returns: 50.7965727156998
{ "*8", "*7", "*0", "*4", "-7", "*7", "*0", "-0", "*6", "*6", "+1", "*1", "*0", "*2", "-0", "*5", "+6", "+1", "*7", "+3", "*2", "*0", "+4", "*7", "*3", "-8", "*3", "-2", "*7", "*3", "*7", "-3" }
Returns: -41823.576350207964
{ "-1", "+6", "-2", "+1", "+7", "+4", "-6", "-4", "+5", "-3", "+3", "-2", "+4", "-3", "+1", "-3", "+2", "+2", "+6", "+5", "+6", "-3", "-2", "+1", "*6", "+5", "+6", "+6", "+2" }
Returns: 50.41379310344828
{ "-2", "*2", "-3", "*1", "*1", "*6", "*4", "+6", "*7", "-2", "*3", "-6", "*3", "*4", "*3", "-4" }
Returns: -961.8637362637363
{ "+2", "*7", "-7", "*3", "*5", "-3", "*6", "*5", "-7", "-7", "-7", "*7", "+8", "-7", "-4", "-8", "-4", "-4", "-4", "-8", "*5", "+5", "+0", "-2", "*7", "+2" }
Returns: -1075.5319335127115
{ "*1", "*7", "*7", "*0", "+3", "*3", "*5", "*7", "*1", "*6", "*4", "*4", "*3", "*6", "*6", "*2", "*1", "*7", "-6", "*7", "*2", "*5", "*1", "*1", "*6", "*6", "*6", "*3", "*2", "*1", "*8", "*4" }
Returns: -3.754917009006996E12
{ "*5", "*8", "*1", "*4", "+0", "-3", "-5" }
Returns: -118.4
{ "+3", "+6", "+6", "+5", "-5", "+2", "-5", "+1", "-7", "+6", "-1", "+3", "-5", "-7", "-4", "+5", "+6", "+5", "+4", "-5", "-2", "-4", "+4", "-7", "+7", "-7", "+1", "-1", "-0", "-4", "+5", "+2", "-5", "+0", "+0", "-4", "-0", "-6", "-2", "+4", "+4", "-0", "*5" }
Returns: -2.186046511627907
{ "+6", "*8", "-7", "*1", "-4", "+6", "*2", "+4", "*1", "*0", "*3", "*2", "-7", "*8", "-6", "*3", "*2", "*0", "+8", "*3", "-5", "+5", "+4", "-7", "*0", "*7", "-6", "+5", "*0", "*8", "-2", "+0", "-7", "*5", "+0", "-0", "+6", "+3", "-8", "-2", "+3" }
Returns: -74.75801350075345
{ "*2", "-5", "-3", "+4", "-0", "+5", "+8", "*7", "+5", "-5", "*3", "-2", "-6", "+4", "-7", "+7", "-6", "*7", "-7", "-6", "+0", "-3", "*0", "-8", "-5", "-4", "+1", "-4", "+8", "+5", "*8", "*3", "*2", "*6", "-8", "+1", "-5", "+1", "-4", "-1", "+1", "+4", "+8", "-0", "-6" }
Returns: -85.5540427484124
{ "-6", "*3", "+8", "-4", "*2", "*7", "+3", "*6", "*2", "+1", "*2", "*5", "+8", "+4", "+2", "-0", "-5", "*8", "+4", "*1", "*6", "+6", "+4", "+0", "*5", "*6", "-5", "*7", "*7", "*3", "+0", "-8", "-2", "+7", "-7" }
Returns: 1917.2142762049934
{ "+5", "-7", "*6", "+2", "*7", "-8", "*3", "-2" }
Returns: -67.14285714285714
{ "-6", "+6", "-8", "*6", "-1", "*6", "-8", "+5", "-4", "-0", "+7", "+0", "+4", "+7", "+1", "-0", "+8", "+6", "-0", "-4", "-7", "+2", "-8", "+1", "-4", "*8", "+6", "-7", "-8", "-8", "+6", "+0", "-1", "+1", "-0", "+2", "+0", "+5", "-6", "+0", "-5", "-5", "-6", "-1", "-3", "+5", "+5", "+6", "*2" }
Returns: -25.69292652306066
{ "+4", "-5", "+5", "+5", "-2", "+3", "-7", "-3", "+7", "+0", "+4", "+3", "+1", "-5", "+3", "-6", "+7", "+7", "-3", "+5", "-1", "-7", "-4", "-4", "+3", "+0", "*2", "+3", "+3", "-1", "+2", "-7", "*6", "+5", "+3", "-4", "-5", "+2", "-0", "-3", "-2", "-2", "+0", "+6", "+1" }
Returns: 12.555555555555555
{ "*7", "-4", "*0", "*1", "*1", "-7", "*6", "*8", "*8", "*0", "*6", "*5", "*0", "-0", "*1", "+3", "*1", "*6", "*5", "+1", "+8", "+5", "+7", "-0" }
Returns: 1531.115424590889
{ "*6", "-2", "+8", "*8", "*8", "+4", "*4", "*8", "*6", "-7", "+3", "+4" }
Returns: 2240.688311688312
{ "-6", "+1", "-6", "*1", "+7", "+8", "-0", "+1", "+6", "-2", "+0", "*7", "-6", "+3", "-6", "-7", "+6", "-8", "-7", "+2", "+0", "+4", "-6", "*3", "+0", "*5", "-2", "+4", "-7", "-6", "-4", "*2", "+3", "-4", "+5", "+5", "-6", "-7", "+6" }
Returns: -42.71143624827835
{ "+1", "-0", "*5", "-1", "+3", "+7", "-7", "*5", "+3" }
Returns: 14.666666666666666
{ "-0", "*6", "-4", "*7", "+5", "+7" }
Returns: 41.6
{ "+3", "-2", "-0", "*4", "+4", "-2", "+2", "*5", "+1", "-0", "*4", "*3", "-4", "-6", "*7", "*7", "-2", "+2", "-1", "+2", "*2", "*4", "*8", "-5", "-5", "-4", "*7" }
Returns: -738.9398022521592
{ "+5", "*4", "*5", "*8", "*7", "+5", "-6", "+3", "-5", "*2", "-7", "*5", "+1", "*2", "*8", "*7", "*5", "*7", "+5", "*6", "*7", "-4", "*8", "*2" }
Returns: -656352.7381432002
{ "*0", "*7", "*3", "*3", "-5", "*0", "*2", "*3", "*7", "-3", "*1", "+3", "+2", "*0", "*2", "*6", "*4", "*4", "*7", "*4", "*4", "+6", "*7", "*3", "*2", "*2", "*6", "*2", "*1", "-7", "*3", "*3", "-1", "-5", "*4", "*7", "*5", "*6", "*4", "*6", "*7", "*5", "*0", "*6", "*6", "*8" }
Returns: -1.1884042530544556E12
{ "*4", "*4", "*0", "*6", "*3", "-2", "-6", "*5", "*1", "*7", "*0", "*2", "*0", "+2", "*4", "*2", "*5", "*4", "*2", "*8", "*2", "*2", "*7", "*6", "*2", "*6", "*1", "*1", "*7", "*3", "*5", "*6", "*0", "*5", "*4" }
Returns: -9.371074599502592E9
{ "*7", "*8", "*1", "*4", "*0", "*8", "*2", "*6", "*5", "*8", "*2", "*4", "-3", "*2", "+0", "*5", "*0", "*6", "*1", "*1", "*1", "*8", "*2", "*3", "*3", "*0", "*6", "*6", "*5", "*2", "+3", "*6", "*4", "*7", "*4", "*8" }
Returns: 0.0
{ "+5", "+7", "*7", "+4", "*6", "*2", "*5", "*0", "*6", "*3", "*4", "*2", "*1", "*0", "+2", "*1", "*5", "-1", "*0", "*6", "+2", "+4", "*1", "*6", "*4", "*2", "*2", "*2", "*8", "*5", "-6", "*6", "+8", "-3", "+4", "*0", "+0", "*0", "*8", "*3", "*7" }
Returns: 1416753.1123958053
{ "-8", "+6", "+6", "*2", "*4", "*0", "-1", "-3", "*7", "*8", "*2", "+4", "-2", "*1", "-3", "-6", "-4", "*1", "*5", "*0", "*3", "*0", "+6", "*8", "*7", "*1", "-4", "*4" }
Returns: -395.3761627038999
{ "-7", "+6", "*3", "*0", "*8", "+8", "-5", "*3", "+4", "*0", "+7", "-8", "-5", "+5", "+2", "*2", "+3", "+2", "-0", "*3", "+8", "-5", "*6", "+6", "-4", "-2", "-6", "+0", "*4" }
Returns: 26.612218765742004
{ "*1", "*5", "*4", "*2", "*0", "*4", "*4", "*0", "*0", "*5", "*1", "*4", "*2", "*6", "*3", "*6", "*1", "*1", "*8", "*4", "*7", "*3", "*6", "*6", "*5", "*7", "*8", "*3", "*4", "*0", "*3", "*3", "-2", "*4", "*5", "*6", "*5", "*8" }
Returns: -5.397485582092096E13
{ "-2", "+5", "*0", "-8" }
Returns: -3.75
{ "+7", "-7", "+0", "-1", "-8", "-4", "-3", "+3", "+7", "+3", "*0", "-7", "+5", "-8", "+0", "+7", "+6", "*3", "+3", "+8", "+2", "-6", "+8", "*0", "+2", "-5", "+3", "-5", "+6", "-0", "+0", "-2", "-8", "-8", "-5", "-0", "-8", "*8", "-5", "-3", "+0", "+6", "-1", "+1", "-8", "+5", "-4", "-4", "+6", "-4" }
Returns: -29.77795918367347
{ "+5", "*4", "*8", "-5", "*8", "*2", "+1", "*4", "-7", "*3", "+0", "-3", "*4" }
Returns: -733.4802197802197
{ "*3", "*2", "*5", "-8", "-3", "*1", "*1", "*4", "*3", "*8", "+8", "*0", "*7", "*5", "*4", "*8", "+6" }
Returns: 10227.520612720613
{ "*3", "*6", "*3", "*0", "*7", "*8", "*8", "*5", "*4", "*2", "*4", "*2", "-6", "*7", "*5", "*0", "-0", "*8", "+7", "*8", "*7", "+7", "+8", "*4", "*2", "*8", "*2", "-8", "+8", "+5", "*6", "+5", "*6", "*7", "*6", "*8", "+8", "*6", "*5", "*0", "*1" }
Returns: 3.282180765367744E11
{ "-2", "*8", "+2", "*6", "-6", "+1", "-2", "+1", "-6", "+5", "-7", "*2", "*3" }
Returns: -63.16153846153846