Soluție HackerRank pentru Day 4: Normal Distribution #2, subdomeniul Probability, în Python 3. Include cerința formatată, exemple, explicația pașilor și…

  • Problemă: Day 4: Normal Distribution #2
  • Domeniu: Probability
  • Limbaj: Python 3

Challenge: Day 4: Normal Distribution #2

Subdomeniu: Probability (probability)

Scor cont: 5.0 / 5

Submission status: Accepted

Submission score: 1.0

Submission ID: 464717923

Limbaj: python3

Link challenge: https://www.hackerrank.com/challenges/normal-distribution-2/problem

Cerință

Objective

In this challenge, we practice solving problems with normally distributed variables.

Task

In a certain plant, the time taken to assemble a car is a random variable having a normal distribution with a mean of 20 hours and a standard deviation of 2 hours. What is the probability that a car can be assembled at this plant in:

1. Less than 19.5 hours?
2. Between 20 and 22 hours?

Output Format

Your output must be a floating point/decimal number, correct to a scale of 3 decimal places. You can submit solutions in either of the 2 following ways:

1. Solve the problem manually and submit your result as *Plain Text*. In the text box below, enter 2 lines of floating point/decimal numbers.

2. Submit an *R* or *Python* program, which uses the above parameters (hard-coded), and computes the answer.

Your answer should resemble something like:

0.123
0.456

(This is NOT the answer, just a demonstration of the answering format.)

Cod sursă

# Enter your code here. Read input from STDIN. Print output to STDOUT
import math
def get_function(x):
    mu = 20
    sig = 2
    gaussian_func = (1 / (sig * math.sqrt(2 * math.pi))) * math.exp(-((x - mu) ** 2) / (2 * sig ** 2))
    return gaussian_func

start_value = 12
end_value = 28
step = 0.0001

x = [start_value + i * step for i in range(int((end_value - start_value) / step) + 1)]
y = 0
y1 = 0
y2 = 0

for i in range(len(x)):
    y += get_function(x[i]) * step
    if x[i] < 19.5:
        y1 += get_function(x[i]) * step

    if 20 < x[i] < 22:
        y2 += get_function(x[i]) * step

result1 = int((y1 / y) * 1000) / 1000
result2 = int((y2 / y) * 1000) / 1000

print(str(result1))
print(str(result2))
HackerRank Probability – Day 4: Normal Distribution #2