JavaScript Program to Calculate nPr (Permutations)
Last Updated :
04 Oct, 2023
In this article, we are going to learn how to calculate permutations (nPr) by using JavaScript. Calculating nPr, or permutations means finding the number of unique ordered arrangements of r items from a set of n distinct items. Where order matters and no item is repeated.
The formula for calculating permutations is n factorial divided by (n-r) factorial where n and r are integers and n is greater than or equal to r. The mathematical representation is as follows:
P(n, r) = n! / (n - r)!
For n ≥ r ≥ 0
There are several methods that can be used to Calculating nPr (Permutations) by using javascript, which are listed below:
We will explore all the above methods along with their basic implementation with the help of examples.
In this approach, we will first calculate the factorial of the given number using recursion and then create a function named "permutation" to calculate and return the division of n factorial with (n-r) factorial.
function factorial(n) {
if (n <= 1) return 1
return n * factorial(n - 1)
}
function permutation(n, r) {
if (n < r) return -1
return factorial(n) / factorial(n - r)
};
Example: In this example, factorial to find the factorial of a number and permutation to calculate nPr (permutations). and permutation function to calculate permutations, denoted as "nPr," where "n" represents the total number of items, and "r" represents the number of items selected at a time.
JavaScript
function factorial(n) {
if (n <= 1) return 1
return n * factorial(n - 1)
}
function permutation(n, r) {
if (n < r) return -1
return factorial(n) / factorial(n - r)
}
console.log("4 P 1: ", permutation(4, 1))
console.log("13 P 2: ", permutation(13, 2))
Output4 P 1: 4
13 P 2: 156
Approach 2: Using for Loop
In this approach, permutation function using a loop to calculate nPr. It starts with n, and in each iteration, multiplies by decreasing values until r elements are chosen.
We know that:
n! = n*(n-1)*(n-2)*.....2*1
(n-r)! = (n-r)*(n-r-1)*(n-r-2)*....2*1
We also know that r is less than or equal to n and hence, if we divide the above two equations we get:
n! / (n-r)! = n*(n-1)*(n-2)*.....*(n - (r-2))*(n - (r-1))
Hence, in this approach we initialize a variable named "result" with value n and then using a loop from 1 to (r-1) we calculate the difference with "n" and then multiply to the result.
function permutation(n, r) {
if (n < r) return -1
let result = n
for (let i = 1; i < r; i++) result *= n - i;
return result
};
Example: In this example we are using the above-explained approach.
JavaScript
function permutation(n, r) {
if (n < r) return -1
let result = n
for (let i = 1; i < r; i++)
result *= n - i;
return result
}
console.log("4 P 1: ", permutation(4, 1))
console.log("13 P 2: ", permutation(13, 2))
Output4 P 1: 4
13 P 2: 156
Similar Reads
Non-linear Components
In electrical circuits, Non-linear Components are electronic devices that need an external power source to operate actively. Non-Linear Components are those that are changed with respect to the voltage and current. Elements that do not follow ohm's law are called Non-linear Components. Non-linear Co
11 min read
JavaScript Tutorial
JavaScript is a programming language used to create dynamic content for websites. It is a lightweight, cross-platform, and single-threaded programming language. JavaScript is an interpreted language that executes code line by line, providing more flexibility.JavaScript on Client Side : On client sid
11 min read
Web Development
Web development is the process of creating, building, and maintaining websites and web applications. It involves everything from web design to programming and database management. Web development is generally divided into three core areas: Frontend Development, Backend Development, and Full Stack De
5 min read
Class Diagram | Unified Modeling Language (UML)
A UML class diagram is a visual tool that represents the structure of a system by showing its classes, attributes, methods, and the relationships between them. It helps everyone involved in a projectâlike developers and designersâunderstand how the system is organized and how its components interact
12 min read
Spring Boot Tutorial
Spring Boot is a Java framework that makes it easier to create and run Java applications. It simplifies the configuration and setup process, allowing developers to focus more on writing code for their applications. This Spring Boot Tutorial is a comprehensive guide that covers both basic and advance
10 min read
React Interview Questions and Answers
React is an efficient, flexible, and open-source JavaScript library that allows developers to create simple, fast, and scalable web applications. Jordan Walke, a software engineer who was working for Facebook, created React. Developers with a JavaScript background can easily develop web applications
15+ min read
HTML Tutorial
HTML stands for HyperText Markup Language. It is the standard language used to create and structure content on the web. It tells the web browser how to display text, links, images, and other forms of multimedia on a webpage. HTML sets up the basic structure of a website, and then CSS and JavaScript
10 min read
JavaScript Interview Questions and Answers
JavaScript (JS) is the most popular lightweight, scripting, and interpreted programming language. JavaScript is well-known as a scripting language for web pages, mobile apps, web servers, and many other platforms. Both front-end and back-end developers need to have a strong command of JavaScript, as
15+ min read
Backpropagation in Neural Network
Backpropagation is also known as "Backward Propagation of Errors" and it is a method used to train neural network . Its goal is to reduce the difference between the modelâs predicted output and the actual output by adjusting the weights and biases in the network. In this article we will explore what
10 min read
Polymorphism in Java
Polymorphism in Java is one of the core concepts in object-oriented programming (OOP) that allows objects to behave differently based on their specific class type. The word polymorphism means having many forms, and it comes from the Greek words poly (many) and morph (forms), this means one entity ca
7 min read