mathball
Version:
A JavaScript library for Competitive Programming
38 lines (27 loc) • 905 B
JavaScript
;
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
/* N-th bell Number
* Function: bell()
*/
var validate = require('../validation/non-negative-integer');
function bell(number) {
var bell = [].concat(_toConsumableArray(Array(number + 1))).map(function (x) {
return Array(number + 1).fill(0);
});
bell[0][0] = 1;
for (var i = 1; i <= number; i++) {
var temp = bell[i - 1][i - 1];
bell[i][0] = temp;
for (var j = 1; j <= i; j++) {
var t1 = bell[i - 1][j - 1];
var t2 = bell[i][j - 1];
bell[i][j] = t1 + t2;
}
}
var v = bell[number][0];
return v;
}
exports.find = function (num) {
validate(num, 'bell');
return bell(num);
};