Skip to content
Related Articles

Related Articles

Probability of rain on N+1th day
  • Difficulty Level : Medium
  • Last Updated : 10 Mar, 2021

Given an array of 1 and 0’s, where Ai = 1 denotes that ith day was a rainy day and Ai = 0 denotes it was not a rainy day. The task is to find the probability that the N+1th was a rainy day. 
Examples: 
 

Input: a[] = {0, 0, 1, 0} 
Output: .25 
Since one day was rainy out of 4 days, hence the probability on 
5th day will be 0.25
Input: a[] = {1, 0, 1, 0, 1, 1, 1} 
Output: 0.71 
 

 

The probability of rain on N+1th day can be found out using the below formula:
 

Probability = number of rainy days / total number of days.

First, count the number of 1’s and then the probability will be the number of 1’s divided by N i.e. count / N.
Below is the implementation of the above approach: 
 



C++




// C++ code to find the probability of rain
// on n+1-th day when previous day's data is given
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the probability
float rainDayProbability(int a[], int n)
{
    float count = 0, m;
 
    // count 1
    for (int i = 0; i < n; i++) {
        if (a[i] == 1)
            count++;
    }
 
    // find probability
    m = count / n;
    return m;
}
 
// Driver Code
int main()
{
 
    int a[] = { 1, 0, 1, 0, 1, 1, 1, 1 };
    int n = sizeof(a) / sizeof(a[0]);
 
    cout << rainDayProbability(a, n);
    return 0;
}

Java




// Java code to find the
// probability of rain
// on n+1-th day when previous
// day's data is given
import java.io.*;
import java.util.*;
 
class GFG
{
     
// Function to find
// the probability
static float rainDayProbability(int a[],
                                int n)
{
    float count = 0, m;
 
    // count 1
    for (int i = 0; i < n; i++)
    {
        if (a[i] == 1)
            count++;
    }
 
    // find probability
    m = count / n;
    return m;
}
 
// Driver Code
public static void main(String args[])
{
    int a[] = { 1, 0, 1, 0, 1, 1, 1, 1 };
    int n = a.length;
 
    System.out.print(rainDayProbability(a, n));
}
}

Python 3




# Python 3 program to find
# the probability of rain
# on n+1-th day when previous
# day's data is given
 
# Function to find the probability
def rainDayProbability(a, n) :
 
    # count occurence of 1
    count = a.count(1)
 
    # find probability
    m = count / n
     
    return m
 
# Driver code
if __name__ == "__main__" :
 
    a = [ 1, 0, 1, 0, 1, 1, 1, 1]
    n = len(a)
 
    # function calling
    print(rainDayProbability(a, n))
 
# This code is contributed
# by ANKITRAI1

C#




// C# code to find the
// probability of rain
// on n+1-th day when
// previous day's data
// is given
using System;
 
class GFG
{
     
// Function to find
// the probability
static float rainDayProbability(int []a,
                                int n)
{
    float count = 0, m;
 
    // count 1
    for (int i = 0; i < n; i++)
    {
        if (a[i] == 1)
            count++;
    }
 
    // find probability
    m = count / n;
    return m;
}
 
// Driver Code
public static void Main()
{
    int []a = {1, 0, 1, 0,
               1, 1, 1, 1};
    int n = a.Length;
 
    Console.WriteLine(rainDayProbability(a, n));
}
}
 
// This code is contributed
// by inder_verma.

PHP




<?php
// PHP code to find the
// probability of rain
// on n+1-th day when
// previous day's data
// is given
 
// Function to find
// the probability
function rainDayProbability($a, $n)
{
    $count = 0; $m;
 
    // count 1
    for ($i = 0; $i <$n; $i++)
    {
        if ($a[$i] == 1)
            $count++;
    }
 
    // find probability
    $m = $count / $n;
    return $m;
}
 
// Driver Code
$a = array(1, 0, 1, 0,
           1, 1, 1, 1);
$n = count($a);
 
echo rainDayProbability($a, $n);
 
// This code is contributed
// by inder_verma.
?>

Javascript




<script>
// JavaScript code to find the probability of rain
// on n+1-th day when previous day's data is given
 
// Function to find the probability
function rainDayProbability(a,n)
{
    let count = 0, m;
 
    // count 1
    for (let i = 0; i < n; i++) {
        if (a[i] == 1)
            count++;
    }
 
    // find probability
    m = count / n;
    return m;
}
 
// Driver Code
 
    let a = [1, 0, 1, 0, 1, 1, 1, 1 ];
    let n = a.length;
 
    document.write(rainDayProbability(a,n));
     
// This code contributed by Rajput-Ji
 
</script>
Output: 
0.75

 

Time Complexity: O(N)
 

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :