难倒全班同学

最快解法是热评第一的“153个技能分配给50个人,如果每个人最多只能会3个,就会有3个技能分配不出去——所以至少得有3个人需要额外技能槽”,这里说一下我的笨解法。
从简单开始,分三步:
1. 30个人会游泳,35个人会篮球,总共50个人,那么至少有多少个人两项都会?
在众多的可能性中,
单看一种运动就会得出这样的结论:比如单看篮球,让指挥篮球的人数最多,两项都会的人数就会最少
所以目标现在变成:让只会一项的人数最多,两项都会的人数就会最少。
另一方面,全班的50个人可以分成三种可能:什么都不会的,只会一项的和两项都会的。
为了增加只会一项的人数,我们只能压缩另外两类人数——假定没有人什么都不会不会影响达到最终目的,所以我们就选择这种情况作为答案。
也就是说,剩下两类人合起来是50。
如果一个人只会打篮球,那他只会被包含在会打篮球的人数中,如果一个人既会打篮球又会游泳,那他既会包含在会打篮球的人数中,又会包含在会游泳的人数中——如果我们把会打篮球和会游泳的人数加起来,同时会两项运动的人就会被加两遍,而其他的人只会被加一遍。
所以(假定没有人什么都不会)将会两项运动的人数加起来之后,比总数多出来的人数只能来源于两项都会的人。
所以至少会两项的人数,就这样计算:30+35-50=15
2. 现在把这15个人看成他们会一种叫做游球的运动,加入新的条件“有42个人会唱歌”,解答新的问题“总共50个人,至少有多少个人同时会唱歌和游球”,相当于解答了“总共50个人,至少有多少个人同时会游泳,篮球和唱歌”。
思路与第一步相同,两个人数加起来多于总数的部分只会来源于同时会“两项运动”的人
所以会有15+42-50=7个人同时会我们假想中的“两项运动”,也就是同时会“游泳、篮球和唱歌”
3. 重复上一步,现在考虑有46个人会骑车,那么已经会了上述三个运动又会骑车的人至少有多少个呢?
思路完全一样,46+7-50=3
我反应慢,所以对我来说以上的解法更直观[吃瓜]当然如果是实际解题肯定会比上述这段文字要快,因为解释清楚问题比明白问题要更困难~
解法二(bushi):
模仿上述解法“多计人数只能来源于会两项的人”这个思路,其实可以设定全都不会、只会一项、只会两项、只会三项、四项全会的人为不同的未知数,然后想办法四项全会以外的数量都最大化[吃瓜]
由于人类一般同时能考虑的事情平均来说只有大约4件(参考文献有机会再补充,相关关键词“工作记忆”),同时考虑这么多未知数头会晕;这时候就需要用计算机来便利或者找别的解法,考虑到这是一道中学数学题,所以只能找别的解法[doge]
解法三(up主的解法):
为了求出四项都会的人,至少有多少个,我们需要增加其他种类的人数;我们可以通过“逼迫”尽可能的多的人至少不会一项来做到:
也就是让不会游泳的20个人,不会篮球的15个人,不会唱歌的8个人和不会骑车的4个人完全不重叠——20+15+8+4=47
即使这四类人完全不重叠,也只能凑到47个人,也就是说剩下的三个人不会属于这四类人中的任何一类——他们没有不会任何一项运动,那他们就是四项全会的[doge]
经过最大的努力,也只还是有三个人四项全会——那么答案就是3
额外评论:
我一开始对最优解法有一个不必要的疑问:每个人三个技能槽,是否允许相同技能被分配给同一个人呢?
目前的答案:似乎是因为这是一个真实问题,已经可以保证“无论怎么分配,每个人都不可能会相同技能”
长期混迹于网络发言,我现在反应很慢😂不确定自己是不是对的——或者也有可能是我年纪大了反应很慢,所以只能长期混迹于网络发言。
如果有人能帮助我更系统地认识这个疑惑,那我会非常感谢ta~
如果有人真的能读到这里,那我也非常感谢你(doge)