hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 671|回复: 4

分为若干组使得组内平均数相等

[复制链接]

571

主题

583

帖子

1852

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1852
发表于 2024-4-10 07:08:39 | 显示全部楼层 |阅读模式
将{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}分为若干组,使得每组的平均数均相等,有多少种分法?
回复

使用道具 举报

0

主题

172

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-4-10 07:08:58 | 显示全部楼层
众所周知
平均数只能是5.5
所以问题可以改成,有多少种分法使得平均数等于5.5

然后分两种情况
1、{1,10}{2,9}{3,8}{4,7}{5,6}这五个集合与每一组的交要不然是本身要不然是空集
2、其他情况

于是……
除去{1,10}{2,9}{3,8}{4,7}{5,6}这样的分组之后,剩下的分法,至多有4个组

4^10<2^32,这已经是计算机可以暴搜的范畴了
  1. #include<stdio.h>#define testmean(x) (count[x]==0||(val[x]<<1)/count[x]==11)int main(){  char q,w,e,r,t,y,u,i,o,p;  char val[4],count[4];  int right[4];  val[0]=val[1]=val[2]=val[3]=count[0]=count[1]=count[2]=count[3]=right[0]=right[1]=right[2]=right[3]=0;  for(q=0;q<1;q++){    val[q]+=1;count[q]+=1;  for(w=0;w<4;w++){    val[w]+=2;count[w]+=1;  for(e=0;e<4;e++){    val[e]+=3;count[e]+=1;  for(r=0;r<4;r++){    val[r]+=4;count[r]+=1;  for(t=0;t<4;t++){    val[t]+=5;count[t]+=1;  for(y=0;y<4;y++){    val[y]+=6;count[y]+=1;  for(u=0;u<4;u++){    val[u]+=7;count[u]+=1;  for(i=0;i<4;i++){    val[i]+=8;count[i]+=1;  for(o=0;o<4;o++){    val[o]+=9;count[o]+=1;  for(p=0;p<4;p++){    val[p]+=10;count[p]+=1;    if(testmean(0)&&testmean(1)&&testmean(2)&&testmean(3)){      right[(0!=count[1])+(0!=count[2])+(0!=count[3])]++;    }    val[p]-=10;count[p]-=1;  }    val[o]-=9;count[o]-=1;  }    val[i]-=8;count[i]-=1;  }    val[u]-=7;count[u]-=1;  }    val[y]-=6;count[y]-=1;  }    val[t]-=5;count[t]-=1;  }    val[r]-=4;count[r]-=1;  }    val[e]-=3;count[e]-=1;  }    val[w]-=2;count[w]-=1;  }    val[q]-=1;count[q]-=1;  }  return printf("%d %d %d %d %d",right[0],right[1],right[2],right[3],right[0]+right[1]+(right[2]>>1)+right[3]/6+1);}
复制代码
  1. time ./math1 69 174 60 168real    0m0.024suser    0m0.016ssys     0m0.016s
复制代码
如果没算错应该一共168种情况,分别对应
都属于第一组(1种)
属于两个组,1在1组(69种)
属于3个组,1在1组,交换2,3组视为不同的结果(174种)
属于4个组,1在1组,交换2,3,4组视为不同的结果(60种)
属于5个组,只能是{1,10}{2,9}{3,8}{4,7}{5,6}
去除重复(交换)之后共计168种
回复

使用道具 举报

0

主题

172

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2024-4-10 07:09:31 | 显示全部楼层
本坛有过一个深入的讨论,但目前还没有最终结果。
自然数前段的均衡样本
回复

使用道具 举报

0

主题

191

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-4-10 07:10:02 | 显示全部楼层
  1. Needs["Combinatorica`"];Length[res=Select[SetPartitions[Range[10]],AllTrue[Mean[#]==11/2&]]]Table[Length[Select[KSetPartitions[Range[10],i],Equal@@Mean/@#&]],{i,5}]
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

179

帖子

76

积分

关内侯

Rank: 2

积分
76
发表于 2024-4-10 07:10:07 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-5-1 22:25 , Processed in 0.064411 second(s), 22 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

快速回复 返回顶部 返回列表