NoverK

Fast and accurate N over K

You are now following this Submission

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

Cite As

Jan (2026). NoverK (https://www.mathworks.com/matlabcentral/fileexchange/100174-noverk), MATLAB Central File Exchange. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with R2009b and later releases

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.2.1

Catch another overflow.

1.2.0

Bugfix

1.1.0

Faster validity checks, better overflow detection

1.0.0