gmp_fact

(PHP 4 >= 4.0.4, PHP 5)

gmp_factFactorial

Description

resource gmp_fact ( mixed $a )

Calculates factorial (a!) of a.

Parameters

a

The factorial number.

It can be either a GMP number resource, or a numeric string given that it is possible to convert the latter to a number.

Return Values

A GMP number resource.

Examples

Example #1 gmp_fact() example

<?php
$fact1 
gmp_fact(5); // 5 * 4 * 3 * 2 * 1
echo gmp_strval($fact1) . "\n";

$fact2 gmp_fact(50); // 50 * 49 * 48, ... etc
echo gmp_strval($fact2) . "\n";
?>

The above example will output:

120
30414093201713378043612608166064768844377641568960512000000000000

Коментарии

Автор:
I was expecting gmp_fact() is more effective than doing a while loop, but measurements show opposite:

<?php
$cislo 
112;
$fact $cislo;
$ffact 1;
$mt microtime();
while(
$fact >= 1)
{
   
$ffact $fact $ffact;
   
$fact--;
}
$md=number_format(microtime()-$mt6);
echo 
"<h1>LOOP ($md):</h1>";
echo 
$ffact;

$mt microtime();
$vec gmp_fact($cislo);
$md=number_format(microtime()-$mt6);
echo 
"<h1>GMP FACT ($md):</h1>";
echo 
$vec;
exit();
?>

WILL OUTPUT:

LOOP (0.000022s):
1.9745068572211E+182

GMP FACT (0.000132s):
1.9745068572211E+182

Result is 0.000022s loop, and 0.000132s gmp_fact()
2018-10-01 06:59:51
http://php5.kiev.ua/manual/ru/function.gmp-fact.html
Автор:
I was expecting gmp_fact() is more effective than doing a while loop, but measurements show opposite:

<?php
$cislo 
112;
$fact $cislo;
$ffact 1;
$mt microtime();
while(
$fact >= 1)
{
   
$ffact $fact $ffact;
   
$fact--;
}
$md=number_format(microtime()-$mt6);
echo 
"<h1>LOOP ($md):</h1>";
echo 
$ffact;

$mt microtime();
$vec gmp_fact($cislo);
$md=number_format(microtime()-$mt6);
echo 
"<h1>GMP FACT ($md):</h1>";
echo 
$vec;
exit();
?>

WILL OUTPUT:

LOOP (0.000022s):
1.9745068572211E+182

GMP FACT (0.000132s):
1.9745068572211E+182

Result is 0.000022s loop, and 0.000132s gmp_fact()
2018-10-01 07:01:04
http://php5.kiev.ua/manual/ru/function.gmp-fact.html

    Поддержать сайт на родительском проекте КГБ