Problem Statement
Definition
- Class:
- DriveFailures
- Method:
- failureChances
- Parameters:
- double[]
- Returns:
- double[]
- Method signature:
- double[] failureChances(double[] failureProb)
- (be sure your method is public)
Notes
- The returned value must be accurate to within a relative or absolute value of 1E-9.
- If events with probabilities p1 and p2 are independent, then the probability of both occurring is p1p2.
Constraints
- failureProb will contain between 1 and 15 elements, inclusive.
- Each element of failureProb will be between 0.0 and 1.0, inclusive.
Examples
{1.0, 0.25, 0.0}
Returns: {0.0, 0.75, 0.25, 0.0 }
The first drive is guaranteed to fail, the second has a 25% chance of failing, and the third is guaranteed not to fail. So there is a 25% of two failures and a 75% chance of only one failure.
{0.4, 0.7}
Returns: {0.18000000000000002, 0.54, 0.27999999999999997 }
There is a probability of 0.4 x 0.7 = 0.28 that both drives will fail. The chance that only the first will fail is 0.12 and that only the second will fail is 0.42, for a total probability of 0.54 that exactly one drive will fail. This leaves a probability of 0.18 that no drives will fail.
{0.2, 0.3, 0.0, 1.0, 0.8, 0.9}
Returns: {0.0, 0.011199999999999993, 0.15319999999999995, 0.5031999999999999, 0.2892, 0.0432, 0.0 }
{0.0}
Returns: {1.0, 0.0 }
{0.5}
Returns: {0.5, 0.5 }
{1.0}
Returns: {0.0, 1.0 }
{0.3}
Returns: {0.7, 0.3 }
{0.00000001}
Returns: {0.99999999, 1.0E-8 }
{0.99999999}
Returns: {1.0000000050247593E-8, 0.99999999 }
{0.0, 0.0}
Returns: {1.0, 0.0, 0.0 }
{0.0, 1.0}
Returns: {0.0, 1.0, 0.0 }
{1.0, 0.0}
Returns: {0.0, 1.0, 0.0 }
{1.0, 1.0}
Returns: {0.0, 0.0, 1.0 }
{1.0, 0.5}
Returns: {0.0, 0.5, 0.5 }
{0.0, 0.5}
Returns: {0.5, 0.5, 0.0 }
{0.5, 0.5}
Returns: {0.25, 0.5, 0.25 }
{0.3, 0.2}
Returns: {0.5599999999999999, 0.38, 0.06 }
{0.2, 0.3}
Returns: {0.5599999999999999, 0.38, 0.06 }
{0.3, 0.7}
Returns: {0.21000000000000002, 0.58, 0.21 }
{0.85, 0.99}
Returns: {0.0015000000000000015, 0.15700000000000003, 0.8415 }
{1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.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, 1.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: {1.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.3, 0.7, 0.4, 0.2, 0.6, 0.3, 0.7, 0.4, 0.2, 0.6, 0.3, 0.7, 0.4, 0.2, 0.6}
Returns: {6.554832076800003E-5, 0.0010183399833600002, 0.0070858793779200015, 0.029235425955840007, 0.07984751662080002, 0.15270933299097603, 0.21109227031808003, 0.21469299841536005, 0.16201860087552, 0.09078461342720001, 0.037500766815744, 0.01122818720256, 0.00236201225472, 3.3004952064E-4, 2.7433727999999998E-5, 1.024192512E-6 }
{0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.10, 0.11, 0.12, 0.13, 0.14, 0.15}
Returns: {0.28159159160078, 0.3774589717956491, 0.23056026026113033, 0.08500016810502983, 0.02111582444846962, 0.003736891073464306, 4.8561329785468707E-4, 4.706610943803578E-5, 3.419999240600057E-6, 1.856541577583813E-7, 7.435784291984619E-9, 2.1465056329584774E-10, 4.294330805387521E-12, 5.5720653753600026E-14, 4.1430118464000025E-16, 1.307674368000001E-18 }
{0.999, 0.001, 0.998, 0.002, 0.997, 0.003, 0.996, 0.004, 0.995, 0.005, 0.0000001, 0.99999999, 0.50001, 0.49999, 0.5}
Returns: {1.4776270219817798E-22, 1.477660709601046E-14, 3.371009647237236E-11, 2.7672349722218394E-8, 1.0466858638696476E-5, 0.0018575761051757892, 0.12683668650067884, 0.3712952094128612, 0.3712952314141295, 0.12683671975006808, 0.0018575875195364548, 1.0467025817959465E-5, 2.7673291734892944E-8, 3.371258697336947E-11, 1.4779640980119786E-14, 1.4776271475434976E-21 }
{0.2, 0.3, 0.0, 1.0, 0.8, 0.9 }
Returns: {0.0, 0.011199999999999993, 0.15319999999999995, 0.5031999999999999, 0.2892, 0.0432, 0.0 }
{0.2, 0.3, 0.0, 1.0, 0.8, 0.9, 1.0, 0.0, 0.0, 0.0, 0.4, 0.643, 0.2345, 0.0090 }
Returns: {0.0, 0.0, 0.0018199369339199991, 0.029959394153639986, 0.15465959875075996, 0.3246078893044799, 0.3094725778644, 0.14428690530548, 0.032306431214760005, 0.0028638166226400003, 2.344984992E-5, 0.0, 0.0, 0.0, 0.0 }
{1.0, 0.25, 0.0 }
Returns: {0.0, 0.75, 0.25, 0.0 }
{0.13245546, 0.454, 0.333, 0.777, 0.995, 0.315, 0.045, 0.45456, 0.0, 0.454, 0.486, 0.132, 0.79, 0.65, 0.1324 }
Returns: {1.952578132073999E-6, 4.1591641410763594E-4, 0.005602457332012813, 0.03217653449930757, 0.1021216434801872, 0.1996186326183762, 0.25421589487906204, 0.21701399760341442, 0.12537767857921714, 0.04873565033181908, 0.012483650859565489, 0.002029180906738993, 1.9657073696661552E-4, 1.0041655751466966E-5, 1.975253415587311E-7, 0.0 }
{1.0E-9, 2.0E-9, 3.0E-9, 4.0E-9, 5.0E-9, 6.0E-9, 7.0E-9, 8.0E-9, 9.0E-9, 9.0E-9, 0.0, 1.0E-9, 2.0E-9, 3.0E-9, 0.99999999999 }
Returns: {1.0000000227403676E-11, 0.9999999399900015, 5.999999677940006E-8, 1.6099999233939012E-15, 2.5529998934336715E-23, 2.6635199036508658E-31, 1.9264499404875557E-39, 9.915529743084918E-48, 3.6687989220815977E-56, 9.735214135637374E-65, 1.8251696765434623E-73, 2.3438285785591793E-82, 1.9470347887560293E-91, 9.353750374432287E-101, 1.959551999980405E-110, 0.0 }
{1.0, 0.6666666, 0.77777, 0.0, 0.0, 0.3666666666, 1.0, 0.4545454545, 0.56565656, 0.7878756328, 0.48895626, 0.48451526, 0.45845415, 0.884893115, 0.3215 }
Returns: {0.0, 0.0, 2.626978556812887E-5, 5.998271495027147E-4, 0.0056053532430687105, 0.02866643719622964, 0.08999438177594908, 0.18372801408955935, 0.2509499008473976, 0.23096053983500867, 0.14118929962174626, 0.05485513685971355, 0.012234792075579447, 0.0011900475206767778, 0.0, 0.0 }
{0.9663215844125232, 0.9955234579585222, 0.9854712547896322, 0.1254789631454563, 0.12365478965478965, 0.2514563254896667, 0.2589654789654124 }
Returns: {9.311582385789273E-7, 2.978573750406699E-4, 0.022088002623568116, 0.4242562337379834, 0.398179662278224, 0.13511109859535061, 0.019108351130936067, 9.578631006585824E-4 }
{0.92342446, 0.1231242, 0.6666346, 0.92342446, 0.1231242, 0.6666346, 0.92342446, 0.1231242, 0.6666346, 0.92342446, 0.1231242, 0.6666346, 0.92342446, 0.1231242, 0.6666346 }
Returns: {5.620091357769545E-9, 3.990018729128323E-7, 1.2064054034164672E-5, 2.0262227383252907E-4, 0.002072724997899383, 0.013392948598636725, 0.05544651265036511, 0.1481314981296609, 0.25411009975734267, 0.2732050424446605, 0.1754191052383979, 0.06330982125336683, 0.013060956756626297, 0.001537337447545144, 9.636049035237197E-5, 2.501285315071009E-6 }
{1.0 }
Returns: {0.0, 1.0 }
{1.0E-6, 1.0E-4, 0.05123, 0.0123, 0.12345, 0.9, 0.011, 0.7634, 0.00222, 0.19992, 0.087, 0.87123, 0.077, 0.0011, 0.0222 }
Returns: {0.0016261375811550316, 0.03197873493276076, 0.20281323698381165, 0.4472810372298462, 0.24767669615645846, 0.060343883969074724, 0.007708407116563414, 5.493883689413699E-4, 2.199087090801454E-5, 4.812455029724557E-7, 5.514704553737296E-9, 3.020921262541888E-11, 6.340122591434084E-14, 4.32889584750931E-17, 3.762045596811884E-21, 3.7188236850204005E-27 }
{0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.04, 0.04, 0.04, 0.04, 0.04 }
Returns: {0.35099121024604574, 0.38511535568663346, 0.1924222645677589, 0.05790986344031848, 0.011699312575242243, 0.0016736356062996482, 1.7422498212249602E-4, 1.3349113196544003E-5, 7.521235845120003E-7, 3.0754805760000015E-8, 8.867266560000005E-10, 1.7068032000000013E-11, 1.9660800000000014E-13, 1.0240000000000007E-15 }