所以我在业余时间一直在解决一个问题,但我被困住了。这就是我所在的地方。我有一个数字 40。它代表球员。我得到了其他数字 39, 38, .... 10。这些代表前 30 名玩家的分数 (1 -30)。其余的球员(31-40)有一些未知的分数。我想做的是找出有多少分数组合与给定数据一致。
所以举个更简单的例子:如果你有 3 个玩家。一个人的得分为 1。那么得分的可能组合数为 3 (0,2; 2,0; 1,1),其中 (a,b) 代表玩家一和玩家二的获胜次数, 分别。(3,0) 的组合不起作用,因为没有人可以赢得 3 场胜利。(0,0) 也行不通,因为我们总共需要 3 场胜利(而 0,0 则无法获得)。
我找到了可能的游戏总数。这是玩的总局数,也就是总胜局数。(没有平局。)最后,我有一个变量来表示每位玩家的最大胜利(比玩家总数少一。没有玩家可以拥有更多。)
我尝试通过将 N 次胜利分配给每个玩家然后减去不符合标准的组合来找到唯一组合的数量。例如,要找出许多方法让 5 个人获得 10 次胜利,而每个人获得的胜利不超过 4 次,您可以使用:C(14,4) - C(5,1)*C(9,4) + C (5,2)*C(4,4) = 381。C(14,4) 来自公式 C(n+k-1, k-1)(我相信谷歌酒吧和条带)。接下来是选择带有 5 的那些(不允许),但添加我们减去两次的那些。
是的,必须有一个更简单的方法。最后,数字变得如此之大,以至于我不确定我的计算机能否充分处理它们。我们讨论的是 C(780, 39),即 1.15495183 × 10^66。无论如何,应该有更好的方法来做到这一点。
回顾一下,你有 40 个人。前 30 人的分数是 10 - 39,后 10 人的分数未知。您可以生成多少符合标准的分数:所有分数加起来就是可能的总获胜次数,每位玩家不再获得 39 次胜利。
想法?