xiangpan18 发表于 2013-5-30 15:07:30

【求助】m个相同的小球放入n个不同的盒子后续

本帖最后由 xiangpan18 于 2013-5-30 15:12 编辑

前几天问了一个问题,得到诸位帮助,多谢,现在提出这个问题,增加条件。m个相同小球,n个不同盒子,m>=n,小球全部放进盒子,至少有一个盒子为空,求组合。我按照一个盒子空,两个盒子空,...,直至n-1个盒子空的情况分别计算,然后加和,给出组合数应该为$\sum\limits_{i = 1}^{n - 1} {C_n^iC_{m - 1}^{m - n + i}} $,想得到各个组合,请各位不吝赐教,不胜感激!

qibbxxt 发表于 2013-5-30 15:07:31

本帖最后由 qibbxxt 于 2013-5-31 07:56 编辑

将之前代码稍作修改m = 5;
n = 3;
f = fullfact(m+ones(n, 1))'-1;
f( :,sum(f) ~= m) = [];
index = arrayfun(@(x)nnz(f(:,x)),1:length(f));
% 分别显示
arrayfun(@(x)disp(f(:,index == x)),n -1 : -1 : 1)
% 一起
disp(f(:,index ~= n))   4   3   2   1   4   0   3   0   2   0   1   0
   1   2   3   4   0   4   0   3   0   2   0   1
   0   0   0   0   1   1   2   2   3   3   4   4

   5   0   0
   0   5   0
   0   0   5

   5   4   3   2   1   0   4   0   3   0   2   0   1   0   0
   0   1   2   3   4   5   0   4   0   3   0   2   0   1   0
   0   0   0   0   0   0   1   1   2   2   3   3   4   4   5

xiangpan18 发表于 2013-6-3 14:44:13

qibbxxt 发表于 2013-5-31 07:52 static/image/common/back.gif
将之前代码稍作修改

读写版主帮助,不知如何将版主回复选为最佳答案
f(index>=n)=[]

lin2009 发表于 2013-6-5 04:11:06

1#公式改过了吧,这次是对的。
不过还有更简洁的形式:(Tex公式显示有问题,就用Matlab的形式来表示。)nchoosek(m+n-1,n-1) - nchoosek(m-n+n-1,n-1) % m>=n
% 符合条件的组合数 = 无条件的所有组合数 -不符合条件的组合数可以比较,验证一下,呵呵。

xiangpan18 发表于 2013-6-6 08:52:33

本帖最后由 xiangpan18 于 2013-6-6 09:08 编辑

lin2009 发表于 2013-6-5 04:11 static/image/common/back.gif
1#公式改过了吧,这次是对的。
不过还有更简洁的形式:(Tex公式显示有问题,就用Matlab的形式来表示。)可以 ...
兄台所言极是,全部的组合数减去每盒至少一个的组合。这个问题本来是这样的,我要把全部组合分组,至少一盒空,所有盒大于一且至少一盒只有一个,所有盒大于二且至少一个盒子只有二,......这样将全部组合分组。如果以三个变量为轴建立一个空间,这样可以看做是一个截面和这个立方体各层的交点
按照之前版主的指导,我这样完成的clear
clc
m=8;
n=3;
j_max=2;
ind=indexcomb(m,n);      %这个是之前您的程序段写成一个函数,即用插板法实现功能m个相同小球任意放入n个不同盒子的组合
index = arrayfun(@(x)nnz(ind(x,:)),1:size(ind,1));
j1=ind(index<n,:);
ind(index<n,:)=[];
index = arrayfun(@(x)nnz(ind(x,:)-1),1:size(ind,1));
j2=ind(index<n,:);
ind(index<n,:)=[];
index = arrayfun(@(x)nnz(ind(x,:)-2),1:size(ind,1));
j3=ind(index<n,:);

socraticliq 发表于 2013-7-6 09:32:12

正在做这方面的工作,很有意义,分享,学习
页: [1]
查看完整版本: 【求助】m个相同的小球放入n个不同的盒子后续