# 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[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

 ` `

Output:

```0.151515
```

Time Complexity : O(1)