Skip to content
Programming101
Programmingoneonone
  • Home
  • CS Subjects
    • Internet of Things (IoT)
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
  • HackerRank Solutions
    • HackerRank Algorithms Solutions
    • HackerRank C problems solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
Programming101
Programmingoneonone

HackerRank Day 5: Normal Distribution I | 10 Days of Statistics solution

YASH PAL, 31 July 2024

In this Hackerrank Day 5: Normal Distribution I 10 Days of Statistics problem In a certain plant, the time taken to assemble a car is a random variable, X, 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?
HackerRank Day 5: Normal Distribution I | 10 Days of Statistics solution

Problem solution in Python programming.

# Enter your code here. Read input from STDIN. Print output to STDOUT
import math
mean=20.0
stddev=2.0
h1=19.5
h21,h22=20.0,22.0

def integrate(func,b,n=10000):
    step=1/n
    if(b<0):step=-step
    n=int(abs(b)*n)
    a=0.0
    sq=0.0
    for _ in range(0,n):
        sq+=step*func(a)
        a+=step
    return abs(sq)

erf = lambda b : (2*math.pi**(-0.5)) * integrate(lambda x: math.exp(-x**2),b)
phi = lambda b : (1 + erf( (b-mean) / (stddev * 2**0.5) ))/2
lesh1 = phi(0.0) - phi(h1)
beth1h2 = phi(h22) - phi(h21)
print(f'{lesh1:.3f}')
print(f'{beth1h2:.3f}')

Problem solution in Java Programming.

import java.io.*;
import java.util.*;

public class Solution {

   public static void main(String[] args) {
        double mean = 20;
        double sdev = 2;

        System.out.printf("%.3fn", normal(19.5, mean, sdev));
        System.out.printf("%.3fn", normal(22, mean, sdev) - normal(20, mean, sdev));

    }
    private static double normal(double x, double mean, double sdev) {
        return .5*(1 + erf((x - mean) / (sdev * Math.sqrt(2))));
    }
    
    public static double erf(double z) {
        double t = 1.0 / (1.0 + 0.5 * Math.abs(z));

        // use Horner's method
        double ans = 1 - t * Math.exp( -z*z   -   1.26551223 +
                                            t * ( 1.00002368 +
                                            t * ( 0.37409196 + 
                                            t * ( 0.09678418 + 
                                            t * (-0.18628806 + 
                                            t * ( 0.27886807 + 
                                            t * (-1.13520398 + 
                                            t * ( 1.48851587 + 
                                            t * (-0.82215223 + 
                                            t * ( 0.17087277))))))))));
        if (z >= 0) return  ans;
        else        return -ans;
}
}

Problem solution in C++ programming.

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;

double cud(double x, double u, double o){
    return 0.5*(1+erf((x-u)/(o*pow(2,0.5))));
}

int main() {
    /* Enter your code here. Read input from STDIN. Print output to STDOUT */  
    double u, o, first, second, third;
    cin >> u >> o >> first >> second >> third;
    cout << fixed << setprecision(3) << cud(first, u, o) - cud(0, u, o) << endl;
    cout << fixed << setprecision(3) << cud(third, u, o)- cud(second, u, o) << endl;
    return 0;
}

Problem solution in C programming.

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

// cumulative density (distribtuion function) for a normal;
double pnorm(double m, double sd, double a){
    double b = erf((a-m)/(sd*pow(2.0,0.5)));
    return 0.5*(1+b);
}

int main() {

    double mux, sdx, q1, lb, ub;
    scanf("%lf %lfn %lfn%lf %lf", &mux, &sdx, &q1, &lb, &ub);
    
    // probability less than 19.5
    
    printf("%.3lfn", pnorm(mux, sdx, q1));
    
    // prob between 20 to 22
    
     printf("%.3lfn", pnorm(mux, sdx, ub) - pnorm(mux, sdx, lb));
    
    return 0;
}

Problem solution in JavaScript programming.

function processData(input) {
    //Enter your code here
    const processInput = input.split('n');
    const data = processInput[0].split(' ').map(a => parseInt(a));
    const q1 = parseFloat(processInput[1]);
    const q2Process = processInput[2].split(' ');
    const q2A = parseFloat(q2Process[0]);
    const q2B = parseFloat(q2Process[1]);
    const mean = data[0];
    const std = data[1];
    
    console.log(cumulative(mean, std, q1).toFixed(3));
    console.log((cumulative(mean, std, q2B) - cumulative(mean, std, q2A)).toFixed(3));
}

function cumulative(mean, std, x) {
    let parameter = (x - mean) / (std * Math.sqrt(2));
    return (0.5) * (1 + erf(parameter));
}
        
function erf(z) {
    let t = 1.0 / (1.0 + 0.5 * Math.abs(z));

    let ans = 1 - t * Math.exp( -z*z   -   1.26551223 +
                                        t * ( 1.00002368 +
                                        t * ( 0.37409196 + 
                                        t * ( 0.09678418 + 
                                        t * (-0.18628806 + 
                                        t * ( 0.27886807 + 
                                        t * (-1.13520398 + 
                                        t * ( 1.48851587 + 
                                        t * (-0.82215223 + 
                                        t * ( 0.17087277))))))))));
    if (z >= 0) return  ans;
    else        return -ans;
}

process.stdin.resume();
process.stdin.setEncoding("ascii");
_input = "";
process.stdin.on("data", function (input) {
    _input += input;
});

process.stdin.on("end", function () {
   processData(_input);
});

10 days of statistics coding problems solutions

Post navigation

Previous post
Next post

Pages

  • About US
  • Contact US
  • Privacy Policy

Programing Practice

  • C Programs
  • java Programs

HackerRank Solutions

  • C
  • C++
  • Java
  • Python
  • Algorithm

Other

  • Leetcode Solutions
  • Interview Preparation

Programming Tutorials

  • DSA
  • C

CS Subjects

  • Digital Communication
  • Human Values
  • Internet Of Things
  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2025 Programmingoneonone | WordPress Theme by SuperbThemes