# Probability for three randomly chosen numbers to be in AP

• Difficulty Level : Medium
• Last Updated : 06 Apr, 2021

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

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.

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

 ``

## Javascript

 ``

Output:

`0.151515`

Time Complexity : O(1)

My Personal Notes arrow_drop_up