- 积分
- 0
- 注册时间
- 2009-12-8
- 仿真币
-
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2013-6-6 08:52:33
|
显示全部楼层
来自 大连理工大学
本帖最后由 xiangpan18 于 2013-6-6 09:08 编辑
lin2009 发表于 2013-6-5 04:11
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,:);
复制代码 |
评分
-
1
查看全部评分
-
|