combine为什么不直接用排列组合的算法,而且视频里combine连返回值都没有,而且到底是返回数字还是数组?
来源:4-4 创建接口模块(上)

诺森德的凛冽寒风
2017-05-21
视频里没有返回值
源代码里返回的是allresult
但是注释里写的返回值是个Number
然后combine的返回值要给count
count也应该是一个数
你这个不是成了一个数组了吗
如果只是要长度为什么要这么复杂的逻辑
直接用排列组合的计算公式不就行了吗
完全看不懂为什么要这么写
计算注数我的思路
function combine(active,size){ if (size > active) {return} let factorial = Calculate.factorial return factorial(active)/(factorial(size)*(factorial(active-size))) } // 阶乘 function factorial(total){ if (total) { var result = total; if (total-1) { result = total*factorial(total-1) }else{ return total } return result }else{ return 0 } }
希望老师能指点解惑
写回答
1回答
-
哈,非常抱歉哈,注释写的不严谨,最后的返回值是一个数组,数组的长度就是注数,所以注释就简写了注数,
看下这个运行结果C4,3的结果是4,因为Js中没有排列组合的运算,只能用递归来实现。同学这个思路是很正确的,但是有没有考虑过性能呢?可以和视频中的排列组合算法对比下
132017-05-21
相似问题