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 - arytmetyka liczb dużej precyzji
- Wstęp
- Instalacja/Konfiguracja
- Stałe predefiniowane
- Funkcje BC Math
- bcadd — Dodaje dwie liczby o dużej precyzji
- bccomp — Porównuje dwie liczby o dużej precyzji
- bcdiv — Dzieli dwie liczby o dużej precyzji
- bcmod — Dzieli w module liczbę o dużej precyzji
- bcmul — Mnoży dwie liczby o dużej precyzji
- bcpow — Podnosi liczbę o dużej precyzji do potęgi
- bcpowmod — Raise an arbitrary precision number to another, reduced by a specified modulus
- bcscale — Ustala domyślną precyzję obliczeń BCMath
- bcsqrt — Wyciąga pierwiastek kwadratowy z liczby o dużej precyzji
- bcsub — Odejmuje jedną liczbę o dużej precyzji od drugiej
ClaudiuS ¶
3 months ago
