珀尔 |数学::BigInt->bfac() 方法
Perl 中的Math::BigInt
模块提供了表示具有任意精度和重载算术运算运算符的整数的对象。
Math::BigInt
模块的bfac()
方法用于计算存储为BigInt
对象的数字的阶乘。
Syntax: Math::BigInt->bfac()
Parameter: None
Returns: a normalised BigInt object whose value represents the factorial of the given number.
示例 1:使用Math::BigInt->bfac()
方法
#!/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";
输出:
Factorial of 5 : 120
Factorial of 10 : 3628800
示例 2:使用Math::BigInt->digit()
方法计算大数阶乘中的位数
#!/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";
输出:
factorial of 100 : 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
Count of digits in factorial : 158
示例 3:使用Math::BigInt->digit()
方法计算 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";
输出:
Value of 5C3 : 10
Value of 50C15 : 2250829575120