Dados dos números n y r, la tarea es encontrar el valor de nPr.
nPr representa n permutación r que se calcula como n!/(nk)! . La permutación se refiere al proceso de ordenar todos los miembros de un conjunto dado para formar una secuencia. ¡El número de permutaciones en un conjunto de n elementos viene dado por n! dónde «!» representa factorial.
nPr = n! / (n - r)!
Programa:
C++
// CPP program to calculate nPr #include<bits/stdc++.h> using namespace std; int fact(int n) { if (n <= 1) return 1; return n * fact(n - 1); } int nPr(int n, int r) { return fact(n) / fact(n - r); } // Driver code int main() { int n = 5; int r = 2; cout << n << "P" << r << " = " << nPr(n, r); } // This code is contributed by // Surendra_Gangwar
Java
// Java program to calculate nPr import java.util.*; public class GFG { static int fact(int n) { if (n <= 1) return 1; return n * fact(n - 1); } static int nPr(int n, int r) { return fact(n) / fact(n - r); } public static void main(String args[]) { int n = 5; int r = 2; System.out.println(n + "P" + r + " = " + nPr(n, r)); } }
Python3
# Python3 program to calculate nPr import math def fact(n): if (n <= 1): return 1 return n * fact(n - 1) def nPr(n, r): return math.floor(fact(n) / fact(n - r)) # Driver code n = 5 r = 2 print(n, "P", r, "=", nPr(n, r)) # This code contributed by Rajput-Ji
C#
// C# program to calculate nPr using System; class GFG { static int fact(int n) { if (n <= 1) return 1; return n * fact(n - 1); } static int nPr(int n, int r) { return fact(n) / fact(n - r); } public static void Main() { int n = 5; int r = 2; Console.WriteLine(n + "P" + r + " = " + nPr(n, r)); } } /* This code contributed by PrinciRaj1992 */
PHP
<?php // PHP program to calculate nPr function fact($n) { if ($n <= 1) return 1; return $n * fact($n - 1); } function nPr($n, $r) { return floor(fact($n) / fact($n - $r)); } // Driver code $n = 5; $r = 2; echo $n, "P", $r, " = ", nPr($n, $r); // This code is contributed by Ryuga ?>
Javascript
// Javascript program to calculate nPr function fact(n) { if (n <= 1) return 1; return n * fact(n - 1); } function nPr(n, r) { return Math.floor(fact(n) / fact(n - r)); } // Driver code let n = 5; let r = 2; document.write(n, "P", r, " = ", nPr(n, r)); // This code is contributed by gfgking
Producción:
5P2 = 20
Optimización para consultas múltiples de nPr
Si hay consultas múltiples para nPr, podemos precalcular valores factoriales y usar los mismos para cada llamada. Esto evitaría el cálculo de los mismos valores factoriales una y otra vez.
Publicación traducida automáticamente
Artículo escrito por arora_yash y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA