Ruby注入阶乘

时间:2016-06-29 03:18:54

标签: ruby math

(1..40).inject(:*) / (2*(1..20).inject(:*))

我应该得到答案137846528820而不是167683548393178540705382400000

有人可以帮助我为什么我的号码非常大吗? 我在寻找C(40,20)

1 个答案:

答案 0 :(得分:3)

公式不正确,您使用的是function isOdd(value) { return value % 2; } var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]; for (var i = 0; i < arr1.length;) isOdd(arr1[i]) ? arr1.splice(i, 1) : i++; console.log(arr1); var arr2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]; for (var i = 0; i < arr2.length; i++) if (isOdd(arr2[i])) { arr2.splice(i, 1); i--; } console.log(arr2);,它应该是40! / 2 * 20!

40! / (20! * 20!)