### Question:
NormalDistribution extends AbstractContinuousDistribution { @Override public double inverseCumulativeProbability(final double p) { if (p < 0 || p > 1) { throw new DistributionException(DistributionException.INVALID_PROBABILITY, p); } return mean + standardDeviation * SQRT2 * InverseErf.value(2 * p - 1); } NormalDistribution(double mean,
                              double sd); double getStandardDeviation(); @Override double density(double x); @Override double logDensity(double x); @Override double cumulativeProbability(double x); @Override double inverseCumulativeProbability(final double p); @Override double probability(double x0,
                              double x1); @Override double getMean(); @Override double getVariance(); @Override double getSupportLowerBound(); @Override double getSupportUpperBound(); @Override boolean isSupportConnected(); @Override ContinuousDistribution.Sampler createSampler(final UniformRandomProvider rng);  }### Answer:
@Test void testMath280() { final NormalDistribution normal = new NormalDistribution(0, 1); double result = normal.inverseCumulativeProbability(0.9986501019683698); Assertions.assertEquals(3.0, result, DEFAULT_TOLERANCE); result = normal.inverseCumulativeProbability(0.841344746068543); Assertions.assertEquals(1.0, result, DEFAULT_TOLERANCE); result = normal.inverseCumulativeProbability(0.9999683287581673); Assertions.assertEquals(4.0, result, DEFAULT_TOLERANCE); result = normal.inverseCumulativeProbability(0.9772498680518209); Assertions.assertEquals(2.0, result, DEFAULT_TOLERANCE); }