看了楼主的题目和rumlee的分析后,我来谈谈我对这个题目的看法。挺有趣的题目,我认为不必考虑rumlee同学提出的那些疑惑,可以就认为这是未知的数组,你要做的就是判断它能否满足要求,如果不满足原因是什么,如果满足,怎么分。
1、首先考虑每组80个数(不一定每组数目一样,先考虑这个,最简单的情况)的情况。那就是125个数组。而100/80=1.25。也就是说,如果10000个数中,1的数目小于60个(60*1+20*2)=100,则怎么分都行。如果1的数目大于等于60个,那就把1分开,确保每组1的数目小于60个就可以了。但这里就可以引导出一个条件,如果1的数据量大于等于125*60个且2的数量大于等于125*20个,则怎么分都不行。
2、接下来如果需要产生每组个数小于80的组【前提提交件是1的数量小于125*60个且2的数量大于等于125*20个】,我们以70个数一组为例子。100/70取整还是1。那么如果1的数目小于40个,也是如何分都可以的。换言之就是1*x+2*y大于等于100,且x+y=80的情况中x的值。
3、分析到这里我们就可以知道,这10000个数如何分,主要就是看1,2,3,4……100每个数的数量分布。假设:优先把1,2分好。那么剩下的数保证每组不少于34个数,就肯定大于100(3*34=102)。假设把1,2,3都分配好了,那么后面的数组每组不少于25个数就肯定满足要求。
|