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 ``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);` `    ``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

 ``

## Javascript

 ``
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