Math::BigInt
módulo en Perl proporciona objetos que representan números enteros con precisión arbitraria y operadores aritméticos sobrecargados.
bfac()
El método de Math::BigInt
módulo se utiliza para calcular el factorial de un número almacenado como BigInt
objeto.
Sintaxis: Math::BigInt->bfac()
Parámetro: Ninguno
Devuelve: un objeto BigInt normalizado cuyo valor representa el factorial del número dado.
Ejemplo 1: Uso del Math::BigInt->bfac()
método
#!/usr/bin/perl # Import Math::BigInt module use Math::BigInt; $num = 5; # Calculate the factorial of # the above specified number # Create a BigInt object $x = Math::BigInt->new($num); # Use Math::BigInt->bfac() method # to calculate factorial $factorial = $x->bfac(); print "Factorial of $num : $factorial\n"; $num = 10; # Calculate the factorial of # the above specified number # Create a BigInt object $x = Math::BigInt->new($num); # Use Math::BigInt->bfac() method # to calculate factorial $factorial = $x->bfac(); print "Factorial of $num : $factorial\n";
Producción:
Factorial of 5 : 120 Factorial of 10 : 3628800
Ejemplo 2: Uso de Math::BigInt->digit()
método para contar dígitos en factorial de números grandes
#!/usr/bin/perl # Import Math::BigInt module use Math::BigInt; $num = 100; # Calculate the factorial of # the above specified number # Create a BigInt object $x = Math::BigInt->new($num); # Use Math::BigInt->bfac() method # to calculate factorial $factorial = $x->bfac(); # Print the factorial print "Factorial of $num : $factorial \n"; # Print count of digits in factorial $count = $factorial->length(); print "Count of digits in factorial : $count";
Producción:
factorial of 100 : 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 Count of digits in factorial : 158
Ejemplo 3: Uso del Math::BigInt->digit()
método para calcular el valor de nCr.
#!/usr/bin/perl # Import Math::BigInt module use Math::BigInt; # Value of n $n = 5; # Value of r $r = 3; # Create BigInt objects $x = Math::BigInt->new($n); $y = Math::BigInt->new($r); $z = Math::BigInt->new($n - $r); # calculate nCr using # formula n! / (r! * (n-r)!) $nCr = $x->bfac() / ($y->bfac() * $z->bfac()); # Print calculated value of nCr print "Value of ${n}C${r} : $nCr \n"; # Value of n $n = 50; # Value of r $r = 15; # Create BigInt objects $x = Math::BigInt->new($n); $y = Math::BigInt->new($r); $z = Math::BigInt->new($n - $r); # calculate nCr using # formula n! / (r! * (n-r)!) $nCr = $x->bfac() / ($y->bfac() * $z->bfac()); # Print calculated value of nCr print "Value of ${n}C${r} : $nCr \n";
Producción:
Value of 5C3 : 10 Value of 50C15 : 2250829575120