# 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
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.4

Input : n = 5
Output : 0.1515```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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)

## C++

 `// CPP program to find probability that  ` `// 3 randomly chosen numbers form AP. ` `#include ` `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); ` `    ``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

 ` `

Output:

```0.151515
```

Time Complexity : O(1)

My Personal Notes arrow_drop_up Dream it Do it

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : nitin mittal, jit_t