Calcular Permutación y Combinación en el Lenguaje C

CCBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

La permutación y la combinación son dos conceptos matemáticos diferentes. La permutación es la disposición de objetos en un orden específico. La combinación es una selección de objetos de un conjunto sin tener en cuenta el orden de los objetos seleccionados. En este laboratorio, aprenderemos cómo calcular la permutación y la combinación utilizando el lenguaje de programación C.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c/ControlFlowGroup -.-> c/if_else("If...Else") c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FunctionsGroup -.-> c/function_parameters("Function Parameters") c/FunctionsGroup -.-> c/recursion("Recursion") c/FileHandlingGroup -.-> c/create_files("Create Files") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/if_else -.-> lab-123209{{"Calcular Permutación y Combinación en el Lenguaje C"}} c/function_declaration -.-> lab-123209{{"Calcular Permutación y Combinación en el Lenguaje C"}} c/function_parameters -.-> lab-123209{{"Calcular Permutación y Combinación en el Lenguaje C"}} c/recursion -.-> lab-123209{{"Calcular Permutación y Combinación en el Lenguaje C"}} c/create_files -.-> lab-123209{{"Calcular Permutación y Combinación en el Lenguaje C"}} c/user_input -.-> lab-123209{{"Calcular Permutación y Combinación en el Lenguaje C"}} c/output -.-> lab-123209{{"Calcular Permutación y Combinación en el Lenguaje C"}} end

Escribir la función principal

Primero, creemos un nuevo archivo llamado main.c en el directorio ~/project/ y escribamos el código inicial para incluir archivos de encabezado y la función principal.

#include <stdio.h>

int main() {
    printf("Permutación y Combinación en el Lenguaje C\n\n");
    // Código para el cálculo de permutación y combinación se agregará aquí
    return 0;
}

Escribir la función factorial

Para calcular la permutación y la combinación, necesitamos calcular el factorial de un número. Los factoriales se pueden calcular de manera recursiva. Agregue el siguiente código fuera de la función principal.

long factorial(int num) {
    if (num == 0) {
        return 1;
    }
    else {
        return num * factorial(num - 1);
    }
}

Esta función toma un entero como argumento y devuelve su factorial.

Escribir la función para calcular nCr

Agregue la siguiente función fuera de la función principal para calcular nCr.

long nCr(int n, int r) {
    if (n < r) {
        return -1;
    }
    else {
        return factorial(n) / (factorial(r) * factorial(n - r));
    }
}

Esta función toma dos enteros, n y r, como argumentos y devuelve el valor de nCr. El valor de nCr se calcula dividiendo el factorial de n por el producto del factorial de r y el factorial de n - r.

Escribir la función para calcular nPr

Agregue la siguiente función fuera de la función principal para calcular nPr.

long nPr(int n, int r) {
    if (n < r) {
        return -1;
    }
    else {
        return factorial(n) / factorial(n - r);
    }
}

Esta función toma dos enteros, n y r, como argumentos y devuelve el valor de nPr. El valor de nPr se calcula dividiendo el factorial de n por el factorial de n - r.

Escribir el código principal del programa

Agregue el siguiente código dentro de la función principal para tomar entradas y mostrar los resultados.

int main()
{
    int n, r;

    printf("Ingrese el valor de n:");
    scanf("%d", &n);
    printf("Ingrese el valor de r:");
    scanf("%d", &r);

    printf("nCr es %ld\n", nCr(n, r));
    printf("nPr es %ld\n", nPr(n, r));

    return 0;
}

Este código toma los valores de entrada para n y r del usuario y llama a las funciones nCr() y nPr() para calcular los respectivos valores y luego los muestra.

Código Completo

El código final se ve como sigue.

#include <stdio.h>

long factorial(int num) {
    if (num == 0) {
        return 1;
    }
    else {
        return num * factorial(num - 1);
    }
}

long nCr(int n, int r) {
    if (n < r) {
        return -1;
    }
    else {
        return factorial(n) / (factorial(r) * factorial(n - r));
    }
}

long nPr(int n, int r) {
    if (n < r) {
        return -1;
    }
    else {
        return factorial(n) / factorial(n - r);
    }
}

int main()
{
    int n, r;

    printf("Ingrese el valor de n:");
    scanf("%d", &n);
    printf("\nIngrese el valor de r:");
    scanf("%d", &r);

    printf("nCr es %ld\n", nCr(n, r));
    printf("nPr es %ld\n", nPr(n, r));

    return 0;
}

Resumen

En este laboratorio, aprendimos cómo calcular permutación y combinación en el lenguaje de programación C. Escribimos las funciones para calcular el factorial, nCr y nPr. También escribimos el código principal del programa. Siguiendo los pasos anteriores, podemos calcular la permutación y la combinación para las entradas del usuario.