Probability for three randomly chosen numbers to be in AP
Given a number n and an array containing 1 to (2n+1) consecutive numbers. Three elements are chosen at random. Find the probability that the elements chosen are in A.P.
Examples:
Input : n = 2
Output : 0.4
Explanation:
The array would be {1, 2, 3, 4, 5}
Out of all elements, triplets which are in AP: {1, 2, 3}, {2, 3, 4}, {3, 4, 5}, {1, 3, 5}
No of ways to choose elements from the array: 10 (5C3)
So, probability = 4/10 = 0.4Input : n = 5
Output : 0.1515
The number of ways to select any 3 numbers from (2n+1) numbers are:(2n + 1) C 3
Now, for the numbers to be in AP:
with common difference 1—{1, 2, 3}, {2, 3, 4}, {3, 4, 5}…{2n-1, 2n, 2n+1}
with common difference 2—{1, 3, 5}, {2, 4, 6}, {3, 5, 7}…{2n-3, 2n-1, 2n+1}
with common difference n— {1, n+1, 2n+1}
Therefore, Total number of AP group of 3 numbers in (2n+1) numbers are:
(2n – 1)+(2n – 3)+(2n – 5) +…+ 3 + 1 = n * n (Sum of first n odd numbers is n * n )
So, probability for 3 randomly chosen numbers in (2n + 1) consecutive numbers to be in AP = (n * n) / (2n + 1) C 3 = 3 n / (4 (n * n) – 1)
Below is the implementation of the above approach:
C++
// CPP program to find probability that // 3 randomly chosen numbers form AP. #include <bits/stdc++.h> using namespace std; // function to calculate probability double procal( int n) { return (3.0 * n) / (4.0 * (n * n) - 1); } // Driver code to run above function int main() { int a[] = { 1, 2, 3, 4, 5 }; int n = sizeof (a)/ sizeof (a[0]); cout << procal(n); return 0; } |
Java
// Java program to find probability that // 3 randomly chosen numbers form AP. class GFG { // function to calculate probability static double procal( int n) { return ( 3.0 * n) / ( 4.0 * (n * n) - 1 ); } // Driver code to run above function public static void main(String arg[]) { int a[] = { 1 , 2 , 3 , 4 , 5 }; int n = a.length; System.out.print(Math.round(procal(n) * 1000000.0 ) / 1000000.0 ); } } // This code is contributed by Anant Agarwal. |
Python3
# Python3 program to find probability that # 3 randomly chosen numbers form AP. # Function to calculate probability def procal(n): return ( 3.0 * n) / ( 4.0 * (n * n) - 1 ) # Driver code a = [ 1 , 2 , 3 , 4 , 5 ] n = len (a) print ( round (procal(n), 6 )) # This code is contributed by Smitha Dinesh Semwal. |
C#
// C# program to find probability that // 3 randomly chosen numbers form AP. using System; class GFG { // function to calculate probability static double procal( int n) { return (3.0 * n) / (4.0 * (n * n) - 1); } // Driver code public static void Main() { int []a = { 1, 2, 3, 4, 5 }; int n = a.Length; Console.Write(Math.Round(procal(n) * 1000000.0) / 1000000.0); } } // This code is contributed by nitin mittal |
PHP
<?php // PHP program to find probability that // 3 randomly chosen numbers form AP. // function to calculate probability function procal( $n ) { return (3.0 * $n ) / (4.0 * ( $n * $n ) - 1); } // Driver code $a = array (1, 2, 3, 4, 5); $n = sizeof( $a ); echo procal( $n ); // This code is contributed by aj_36 ?> |
Javascript
<script> // Javascript program to find probability that // 3 randomly chosen numbers form AP. // function to calculate probability function procal(n) { return (3.0 * n) / (4.0 * (n * n) - 1); } // Driver code let a = [1, 2, 3, 4, 5]; let n = a.length; document.write(procal(n)); // This code is contributed by _saurabh_jaiswal </script> |
0.151515
Time Complexity: O(1)
Auxiliary Space: O(1)
Please Login to comment...