美文网首页程序员
召唤师为神马有十个技能(续)

召唤师为神马有十个技能(续)

作者: littlersmall | 来源:发表于2016-01-14 13:12 被阅读99次

    一年前的时候,写了篇日志,描述如何计算出召唤师的技能个数。
    http://www.jianshu.com/p/10e784ff531b
    前一段时间要做技术分享,便随便的把那篇日志放了上去,敷衍的成分明显大于分享的热情。
    今天早上看空间,发现瑞冬同学评论了那篇日志,一段尘封的过往便这样又一次被渐渐追忆回来。
    人总是这样,在选择的路上被各种幻象迷失,在放弃,追寻之间越来越疲惫,回首望去的时候,懊悔,不舍,留恋,伤感充斥心间,我们总算选择性的忘记不好的部分,留下被时间雕琢洗涤后的美好回忆。
    不过话说回来,那些看似美好的东西也许只是一层美丽的外衣罢了,如果真的有机会回到过去重新选择.......
    那么现在得到的maybe是一种新的不同形式的痛苦。
    有得则必有失。

    回到题目中的数学问题。
    今天考虑了一下,觉得问题可以继续抽象化:从m种不同的球中取出n个,或者,有m个不同的球,每一次取出一个,之后放回,一共进行n次,不考虑次序问题,那么一共有多少种方式?
    当然了,可以仍然选择上一篇日志中的方式,将问题分解,转换,最后求解。
    不过今天,我准备换一种思路。

    有放回的取出n个球,那么从结果来看,假设1号球一共被取出了x1次,2号球x2次,以此类推,m号球xm次,那么我们可以得到一个方程:

    x1 + x2 + x3 +...+ xm = n
    

    我们只要求出这个m元一次方程的非负整数解的个数,就可以得到问题的解。
    这个问题是有现成的结论性公式的。但我们仍然通过分析的方式得到最后的结果。

    要求方程的解,我们将问题再做一次变换,假设现在有n个白球,m-1个黑球,那么将这m+n-1个球混合在一起排列起来,第一个黑球左边白球的个数即为x1的值,第一个黑球和第二个黑球之间的白球个数即为x2的值,以此类推,最后一个黑球右边的白球数为xm的值。
    现在问题被转换为了从m+n-1相同的球中,取出m-1个球作为黑球的方式有多少种?
    结果显而易见:C(m+n-1, m-1)。
    原文时间(2013-08-25)

    相关文章

      网友评论

        本文标题:召唤师为神马有十个技能(续)

        本文链接:https://www.haomeiwen.com/subject/euthkttx.html