FACTORIALRATIO
FACTORIALRATIO - ratio of factorial numbers
FR = FACTORIALRATIO (A,B) calculates the ratio between products of
factorials specified by A and B. A and B are lists of positive
integers, with N and M elements, respectively. The number of values in
each list may differ. The factorial ratio is based on the following formula:
(A1! * A2! * ... * AN!)
FR = -------------------------
(B1! * B2! * ... * BM!)
However, an approach is taken that increases the accuracy when A or B
contain larger values, as mentioned in the help of FACTORIAL.
Examples:
f1 = factorialratio([10 8 6],[9 6 5]) ;
f2 = 10 * 8 * 7 * 6 ; % by hand
f3 = (factorial(10) * factorial(8) * factorial(6)) ./ ...
(factorial(9) * factorial(6) * factorial(5)) ;
disp('f1, f2, f3 = ') ; disp([f1 f2 f3])
% Also for larger values FACTORIALRATIO works correctly
f1 = factorialratio(150,143) ;
f2 = prod(144:150) ; % by hand
% where FACTORIAL lacks precision
f3 = factorial(150) ./ factorial(143) ;
disp('f1, f2, f3 = ') ; disp([f1 f2 f3])
disp(' Differences with f2 = ') ; disp([f1-f2 f2-f2 f3-f2])
% and even for extreme numbers things turn out well
f1 = factorialratio(30000,29998) ;
f2 = (30000 * 29999) ; % by hand
% whereas calls to FACTORIAL fail miserably ...
f3 = factorial(30000) ./ factorial(29998) ;
disp('f1, f2, f3 = ') ; disp([f1 f2 f3])
Note that, for instance, factorialratio(200,1) also fails, of course.
For such occasions other engines have to be used.
See also prod, factorial, gammaln
Citation pour cette source
Jos (10584) (2024). FACTORIALRATIO (https://www.mathworks.com/matlabcentral/fileexchange/23018-factorialratio), MATLAB Central File Exchange. Récupéré le .
Compatibilité avec les versions de MATLAB
Plateformes compatibles
Windows macOS LinuxCatégories
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Découvrir Live Editor
Créez des scripts avec du code, des résultats et du texte formaté dans un même document exécutable.
Version | Publié le | Notes de version | |
---|---|---|---|
1.4.0.0 | fixed bug for inputs with only 2's |
||
1.1.0.0 | fixed small bug in error checks |
||
1.0.0.0 |