| 1. |
When is math found/...what BC |
|
Answer» Step-by-step explanation: Note that when you use implementation of factorial that CLAUDIUS made, you get RESULTS even if you try to calculate factorial of number that you normally can't, e.g. 2.5, -2, etc. Here is safer implementation: /** * Calculates a factorial of given number. * @param string|int $num * @throws InvalidArgumentException * @return string */ function bcfact($num) { if (!filter_var($num, FILTER_VALIDATE_INT) || $num <= 0) { throw new InvalidArgumentException(sprintf('Argument must be natural number, "%s" given.', $num)); } for ($result = '1'; $num > 0; $num--) { $result = bcmul($result, $num); } return $result; } ?> up down 15ClaudiuS ¶7 years ago 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: /* 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 ?> HOPE it is helpful to u ... |
|