新浪博客

Dota卡尔技能总数的排列组合求法。

2011-12-22 22:22阅读:
Dota卡尔技能总数的排列组合求法。
Dota卡尔技能总数的排列组合求法。
最近仙德蛋疼,偶尔打打dota,玩到卡尔,突然纠结于卡尔技能的总数的算法,想来想去,似乎不能用一个排列组合的公式来解释,囧rz,于是百度,但是得到的都是列举法,或伪公式(还是列举法),如下图。 Dota卡尔技能总数的排列组合求法。
正巧最近在看离散,总算找到公式和证明了~~~以下,来自《离散数学及其应用》
定理2 n个元素的集合中允许重复的r组合有C(n+r-1,r)个。
证明:当允许重复时n元素集合的r个组合可以用n-1条竖线和r颗星的表表示。这n-1条竖线用来标记n个不同的单元。每当集合的第i个元素出现在组合中,
第i个单元就包含一颗星。例如,4元素集合的一个6组合用3条竖线和6颗星来表示。这里
**|*||***
代表了恰巧包含2个第一元素、1个第二元素、0个第三元素和3个第四元素的组合。
正如我们已经看到的,包含n-1条竖线和r颗星的每一个不同的表对应了n元素集合的允许重复的一个r组合。这种表的个数是C(n-1+r,r),因为每个表对应了从包含r颗星和n-1条竖线的n-1+r个位置中取r个位置来放r颗星的一种选择。

卡尔有冰雷火三种元素,即n=3,组合r=3,所以技能总数为C(3+3-1,3)= C(5,3)=10。
我果然仙德丹腾了……

我的更多文章

下载客户端阅读体验更佳

APP专享