Recursively computes n choose k.
@param {Number} n A number.
@param {Number} k A number.
@return {Number|Infinity} n choose k.
function choose (n, k) {
                    if(typeof n !== 'number' || typeof k !== 'number') return NaN;
                    if(k === 0) return 1;
                    return (n * choose(n - 1, k - 1)) / k;
                }