如何计算数据组合在全排序组合中的行值

问题:双色球所有的红球全排序 组合中,2, 3, 5, 8, 13, 21排第几个?

可以创建自定义 函数解决这个问题:

 

 

 

 1. Function SeqNum(ParamArray d()) As Long 2. Dim k&, i&, j& 3. k = UBound(d) 4. i = 1 5. SeqNum = 1 6. Do 7. j = j + 1 8. If j < d(i) Then 9. SeqNum = SeqNum + WorksheetFunction.Combin(33 - j, 6 - i) 10. Else 11. i = i + 1 12. End If 13. Loop Until j = d(k) 14. End Function 15. 16. Sub Test() 17. MsgBox SeqNum(33, 2, 3, 5, 8, 13, 21) 18. End Sub

 

以上代码返回返回 205804

你可能感兴趣的:(Numbers,VBA,排列组合)