From 1869eab0423b1e1e5aba40d4254528fa66164f21 Mon Sep 17 00:00:00 2001 From: Akshay Dubey <38462415+itsAkshayDubey@users.noreply.github.com> Date: Mon, 22 Nov 2021 18:52:15 +0530 Subject: [PATCH] Add binomial coefficients (#2835) --- .../maths/BinomialCoefficient.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/main/java/com/thealgorithms/maths/BinomialCoefficient.java diff --git a/src/main/java/com/thealgorithms/maths/BinomialCoefficient.java b/src/main/java/com/thealgorithms/maths/BinomialCoefficient.java new file mode 100644 index 000000000..e6a08cd65 --- /dev/null +++ b/src/main/java/com/thealgorithms/maths/BinomialCoefficient.java @@ -0,0 +1,46 @@ +package com.thealgorithms.maths; + +/* + * Java program for Binomial Cofficients + * Binomial Cofficients: A binomial cofficient C(n,k) gives number ways + * in which k objects can be chosen from n objects. + * Wikipedia: https://en.wikipedia.org/wiki/Binomial_coefficient + * + * Author: Akshay Dubey (https://github.com/itsAkshayDubey) + * + * */ + +public class BinomialCoefficient { + + /** + * This method returns the number of ways in which k objects can be chosen from n objects + * + * @param total_objects Total number of objects + * @param no_of_objects Number of objects to be chosen from total_objects + * @return number of ways in which no_of_objects objects can be chosen from total_objects objects + */ + + static int binomialCoefficient(int total_objects, int no_of_objects) { + + //Base Case + if(no_of_objects > total_objects) { + return 0; + } + + //Base Case + if(no_of_objects == 0 || no_of_objects == total_objects) { + return 1; + } + + //Recursive Call + return binomialCoefficient(total_objects - 1, no_of_objects - 1) + + binomialCoefficient(total_objects - 1, no_of_objects); + } + + public static void main(String[] args) { + System.out.println(binomialCoefficient(20,2)); + + //Output: 190 + } + +}