Programa para calcular el valor de nPr

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *