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 Funções Matemáticas de Precisão Arbitrária
- Introdução
- Instalação/Configuração
- Constantes pré-definidas
- BC Math Funções
- bcadd — Adicionar dois números de precisão arbitrária
- bccomp — Comparar dois números de precisão arbitrária
- bcdiv — Dividir dois números de precisão arbitrária
- bcmod — Obtém o módulo de um número com precisão arbitrária
- bcmul — Multiplicar dois números de precisão arbitrária
- bcpow — Elevar um número de precisão arbitrária a outro
- bcpowmod — Aumenta um número de precisão arbitrária para outro, reduzido por um módulo especificado
- bcscale — Configura o parâmentro escala para todas as funções bc
- bcsqrt — Obtém a raiz quadrada de um número de precisão arbitrária
- bcsub — Subtrai um número de precisão arbitrária de outro
ClaudiuS ¶
4 months ago
