当前位置:首页 > 教育综合 > 正文

第6题 6.盒子与球【2020年镇冬令营结题】

c++的一道题 盒子与球 帮看看

考虑第一个盒子放什么球可得如下递推公式:

代码如下

#include
usingnamespacestd;
intC(intp,intq){
intC=1;
for(inti=1;i<=q;i++)
C=C*(p+1-i)/i;
returnC;
}
intmain(){
inta[11][11],i,j,k,n,r;
cin>>n>>r;
for(i=1;i<=n;i++)
a[1][i]=1;
for(i=2;i<=r;i++){
for(j=i;j<=n;j++){
a[i][j]=0;
for(k=1;k<=j-i+1;k++)
a[i][j]+=C(j,k)*a[i-1][j-k];
}
}
cout<}

七个相同的球,放入四个不同的盒子里,每个盒子至少放一个,不同的放法有几种?

4+4+12=20(种) 答:共有20种不同的放法. 方法: 1,1,1,4 1,1,4,1 1,4,1,1 4,1,1,1 1,1,2,3 1,1,3,2 1,2,3,1 1,3,2,1 1,2,1,3 1,3,1,2 2,1,1,3 2,1,3,1 2,3,1,1 3,1,1,2 3,1,2,1 3,2,1,1 1,2,2,2 2,1,2,2 2,2,1,2 2,2,2,1 原因: 首先研究把7分成4个自然数之和的形式,容易得到以下三种情况: ①7=1+1+1+4 ②7=1+2+2+2 ③7=1+1+2+3 其次,将三种情况视为三类计算不同的放法.第一类:有一个盒子里放了4个球,而其余盒子

把36个球装在盒子里,每个盒子装的同样多,有几种装法?每种装法各需要几个盒子

36的因数有:1,2,3,4,6,9,12,18,36。 答:有9种装法。每个盒子装1个,需要36个盒子;每个盒子装2个,需要18个盒子;每个盒子装3个,需要12个盒子;每个盒子装4个,需要9个盒子;每个盒子装6个,需要6个盒子;每个盒子装9个,需要4个盒子;每个盒子装12个,需要3个盒子;每个盒子装18个,需要2个盒子;每个盒子装36个,需要1个盒子。

球和盒都是编号从1到n,n个球放到n个盒子中,球与盒的编号互不相同,有多少种排法

第一种放法 1 1 4,有C(6,1)*C(5,1)*C(4,4)/(2!)=15种 C(m,n)m是组合数的下标,n是上标,2!是消除盒子的排列数 第二种放法 2 2 2,有C(6,2)*C(4,2)*C(2,2)/(3!)=15种 第三种放法 1 2 3,有C(6,1)*C(5,2)*C(3,3)=60种 加起来是 15+15+60=90种

有6个盒子,第一个盒子装1个,第二个盒子装4个,第三个装7个,6个盒子装完,需要多少小球?列公式。

这道题目有这么个规律:从第二个盒子开始,球的数量会在前一个盒子的球的数量的基础上加3,所以,可以这样列算式:1+4+7+10+13+16=51,答:需要51个小球。
展开全文阅读