Find the nCr value with Python.

Published on Aug. 7, 2022, 7:53 p.m.



What is nCr notation?




Hello everyone from this post you will know how to find any nCr value with Python.
For those who don't know what nCr is, it is a standard notation in mathematics defined as shown below.







This notation is widely used in permutations and combination fields and binomial expansion. Even though we can use the Pascal Triangle to expand binomials it is easier to use the binomial theorem which uses the nCr notation.


The n! stands for the product of the numbers from 1 to n which is called the factorial of n.
The factorial is defined only for positive integers and 0. 

The factorial of 0 equals 1

The factorial of negative integers is not defined.


Calculate the nCr Value.


When you are provided with two values (n & r) you can use the above equation to calculate their nCr value. 

For instance, if you want to find 2C1 you can follow the steps below.






With Python.....



As shown above you can calculate any nCr value. But when the number increases it becomes harder to calculate and simplify. 

So we can get all the hard work done by Python.



The easy way...



Python's in-built math library provides you with a simple method to calculate the nCr values. Look it works.

import math
print(math.comb(10,5))



it is just one line.


The hard way... 


You can write your own function to calculate the nCr values without the support of the math library.
You have to write your own function to find the factorial or use the factorial function provided by the math library.

With the function provided by the math library

import math
def ncr(n,r):
    ncr = math.factorial(n)/(math.factorial(n-r)*math.factorial(r))
    return ncr


Write your own function to calculate the factorials.

def factorial(n):
    factorial = 1
    for x in range(1, n+1):
        factorial = factorial*x
   
    return factorial

Then use it instead of the one, provided by the library.




def factorial(n):
    factorial = 1
    for x in range(1, n+1):
        factorial = factorial*x
   
    return factorial



def ncr(n,r):
    ncr = factorial(n)/(factorial(n-r)*factorial(r))
    return ncr

print(ncr(6,4))


That's all hope you like it.

Don't forget to share.....