【发布时间】:2012-06-27 18:12:32
【问题描述】:
我有这个 c# 类,它计算 n 选择 k,然后按字典顺序生成所有可能的组合。它还可以返回每个组合的订单号,例如:传递 [1,2,3,4,5] 将返回 1 给定 n 选择 k(30,5),142506 为 [26,27,28,29,30] .
有没有办法返回所有包含部分组合的订单号?因此,如果我通过 [1,2,3,4] 它将返回:1,2,3,...25,26。
1: [1,2,3,4,5]
2: [1,2,3,4,6]
3: [1,2,3,4,7]
...
25: [1,2,3,4,29]
26: [1,2,3,4,30]
我需要这个来抽奖。我希望每张票都有它的组合订单号,并且在抽取 5 个球时,我需要显示可能获胜者的总数。现在每张票都有实际的组合,我运行查询以获得部分获胜者,但我想优化这个过程。
【问题讨论】:
-
只像往常一样生成排列,减去列表中包含的排列,然后将所述列表添加到前面?
-
(+1) 质疑公平点分配 ;)
标签: c# permutation combinations