概率计算的问题
来源:百度知道 编辑:UC知道 时间:2024/04/28 01:12:33
大家帮忙做一个概率题,在下不会:现在有a个碗(a大于等于21,小于等于183)并排排成一条线,要用5根筷子把它们分成6份,要求左边一堆碗的个数要比右边一堆碗的个数少(不能相同),但是最大的一堆碗的数目不能超过33个有多少种分法?
秦汉孑遗 同学,我这里的a(也即你那里面的q)是一个固定的数值,所以你程序似乎需要修改一处(不妨设碗的总数是total)
{
if(total==(a+b+c+m+n+p))
sum++;
这样就可以了,似乎。麻烦你将total改成102,然后告诉我答案。分就先给你了。
还有就是,我说的是不大于33,意思就是可以等于33,所以还需要修改一下范围。
你原程序其实就是计算的C(6,32)
秦汉孑遗 同学,我这里的a(也即你那里面的q)是一个固定的数值,所以你程序似乎需要修改一处(不妨设碗的总数是total)
{
if(total==(a+b+c+m+n+p))
sum++;
这样就可以了,似乎。麻烦你将total改成102,然后告诉我答案。分就先给你了。
还有就是,我说的是不大于33,意思就是可以等于33,所以还需要修改一下范围。
你原程序其实就是计算的C(6,32)
使用计算机编程可以很快解决该问题。以下是我使用C++语言编写的程序
#include "iostream.h"
void main()
{
int a=0,b=0,c=0,m=0,n=0,p=0,q,sum=0;
for(a=1;a<28;a++)
for(b=a+1;b<29;b++)
for(c=b+1;c<30;c++)
for(m=c+1;m<31;m++)
for(n=m+1;n<32;n++)
for(p=n+1;p<33;p++)
{
q=a+b+c+m+n+p;
if(q>=21&&q<=183)
sum++;
//cout<<"第一堆:"<<a<<","<<"第二堆:"<<b<<","<<"第三堆:"<<c<<","<<"第四堆:"<<m<<","<<"第五