将苹果和橘子分配到盒子里。对解决方案感到困惑

时间:2014-10-19 22:49:55

标签: probability discrete-mathematics

有多少种方法可以将4个相同的橙子和6个不同的苹果分成5个不同的方框

我知道你发现苹果的数量是5 ^ 6。

解决方案告诉我,橘子的方法是8选择4。

然后将它们相乘以得到解决方案,即1,093,750

我的问题是...... 8来自哪里,8选择4 ???

2 个答案:

答案 0 :(得分:1)

将4个相同的橙子分成5个不同的方框的方法数量与问题的非负整数解决方案的数量相同:

  

x 1 + x 2 + x 3 + x 4 + x 5 = 4

假设我采用4个1和4个分离+。然后在1和+的排序与方程的解之间存在一对一的对应关系。

  

例如,“1 ++ 11 + 1 +”对应于“1 + 0 + 2 + 1 + 0”。

有8个!如何订购这8个符号,并且因为有4个相同的1和4个相同的+,我们需要除以4!两次。

  

8! /(4!×4!)= 8选择4

通常,将n个相同对象放入r个不同的区间的方法的数量是[(n + r - 1)选择(r - 1)]。 (r - 1指的是“分离'+'符号的数量。”)

答案 1 :(得分:0)

虽然有一个简单的数学解决方案,但我给你编程解决方案,因为其他答案将是主题:

考虑盒子中橙子的每种可能排列,并用递归来做:

1.在最后一个方框中没有橙色:它类似于你有4个相似的橙子和4个不同的盒子。

2.最后一个方框中的橙色:它类似于你有3个相似的橙子和4个不同的方框。

依旧......

现在让它编程使用这样的函数:

int orangeRecursion(int numOfOranges,int numOfBoxes){
    if(numOfOranges == 0)
       return 1;
    if(numOfBoxes == 0)
       return 0;
    int num = 0;
    for(int i = 0 ; i<=numOfOranges ; i++){
        num += orangeRecursion(numOfOranges - i,numOfBoxes - 1)
    }
    return num;
}