Needed to compute some permutations and found the BC extension great but poor on functions, so untill this gets implemented here's the factorial function:
<?php
/* BC FACTORIAL
* n! = n * (n-1) * (n-2) .. 1 [eg. 5! = 5 * 4 * 3 * 2 * 1 = 120]
*/
function bcfact($n){
$factorial=$n;
while (--$n>1) $factorial=bcmul($factorial,$n);
return $factorial;
}
print bcfact(50);
//30414093201713378043612608166064768844377641568960512000000000000
?>
BCMath Arbitrary Precision Mathematics
- Einführung
- Installation/Konfiguration
- Vordefinierte Konstanten
- BC Math Funktionen
- bcadd — Addition zweier Zahlen beliebiger Genauigkeit
- bccomp — Vergleich zweier Zahlen beliebiger Genauigkeit
- bcdiv — Division zweier Zahlen beliebiger Genauigkeit
- bcmod — Modulo zweier Zahlen mit beliebiger Genauigkeit
- bcmul — Multiplikation zweier Zahlen beliebiger Genauigkeit
- bcpow — Potenz einer Zahl beliebiger Genauigkeit
- bcpowmod — Potenz einer Zahl beliebiger Genauigkeit, vermindert um ein angegebenen Modulo
- bcscale — Setzt die Genauigkeit aller BCmath-Funktionen
- bcsqrt — Ermittelt die Quadratwurzel einer Zahl beliebiger Genauigkeit
- bcsub — Subtrahiert zwei Zahlen beliebiger Genauigkeit
ClaudiuS ¶
3 months ago
