Write a function that takes two parameters n and k and returns the value of Binomial Coefficient C(n, k). For example, your function should return 6 for n = 4 and k = 2, and it should return 10 for n = 5 and k = 2.
We have discussed a O(n*k) time and O(k) extra space algorithm in this post. The value of C(n, k) can be calculated in O(k) time and O(1) extra space.
C(n, k) = n! / (n-k)! * k! = [n * (n-1) *....* 1] / [ ( (n-k) * (n-k-1) * .... * 1) * ( k * (k-1) * .... * 1 ) ] After simplifying, we get C(n, k) = [n * (n-1) * .... * (n-k+1)] / [k * (k-1) * .... * 1] Also, C(n, k) = C(n, n-k) // we can change r to n-r if r > n-r
Following implementation uses above formula to calculate C(n, k)
Value of C(8, 2) is 28
Time Complexity: O(k)
Auxiliary Space: O(1)
This article is compiled by Aashish Barnwal and reviewed by GeeksforGeeks team. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- Binomial Coefficient | DP-9
- Sum of product of r and rth Binomial Coefficient (r * nCr)
- Maximum binomial coefficient term value
- Eggs dropping puzzle (Binomial Coefficient and Binary Search Solution)
- Space efficient iterative method to Fibonacci number
- Find the largest multiple of 3 from array of digits | Set 2 (In O(n) time and O(1) space)
- Dynamic Programming | Wildcard Pattern Matching | Linear Time and Constant Space
- Merge Sort with O(1) extra space merge and O(n lg n) time
- Permutation Coefficient
- Program to find correlation coefficient
- Clustering Coefficient in Graph Theory
- Minimum time to reach a point with +t and -t moves at time t
- Sum of Binomial coefficients
- Sum of squares of binomial coefficients
- Corollaries of Binomial Theorem