NoverK

版本 1.2.1 (3.8 KB) 作者: Jan
Fast and accurate N over K
23.0 次下载
更新时间 2022/2/22

查看许可证

N over K
A fast and stable computation of: n! / (k! * (n-k)!)
This is the number of combinations, if k elements are chosen out of n without
repetitions and order.
[c, OF] = NoverK(n, k)
INPUT:
n, k: Scalars with real integer values, floating point or integer types.
OUTPUT:
c: Result as same type as the inputs.
OF: Logical flag, true on overflow.
NOTES:
- Alternatives:
prod(((n-k+1):n) ./ (1:k)) 3 times slower, less accurate
nchoosek(n, k) 20 times slower, less accurate:
nchoosek(61, 17) 536830054536826 (14 valid digits only)
NoverK(61, 17) 536830054536825
The accuracy and overflow handling was the main reason to write this function.
Tested: Matlab 2009a (no U/INT64!), 2015b(32/64), 2016b, 2018b, Win10

引用格式

Jan (2024). NoverK (https://www.mathworks.com/matlabcentral/fileexchange/100174-noverk), MATLAB Central File Exchange. 检索来源 .

MATLAB 版本兼容性
创建方式 R2018b
与 R2009b 及更高版本兼容
平台兼容性
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
版本 已发布 发行说明
1.2.1

Catch another overflow.

1.2.0

Bugfix

1.1.0

Faster validity checks, better overflow detection

1.0.0