几个好学生? (微信33IQ看到的,比较有意思)
智力题吧
全部回复
仅看楼主
level 8
星空冰鸟 楼主
某班有30个学生,每个学生在班内都有相同个数的朋友。朋友是相互的。班里进行了一次测验,结果大家的成绩均不相同。一个学生被称为“好学生”,当且仅当他的朋友中有超过一半(不包括正好一半)的朋友成绩低于他。
试问班里最多有多少“好学生”?
(过一天发推理过程,可能不唯一,不知道标准答案)
2016年11月22日 10点11分 1
level 8
星空冰鸟 楼主
没人,自己顶,
2016年11月23日 00点11分 2
level 6
计算了一下 2个数据 一个得出22个 还有个25 目前应该是25个好同学
2016年11月24日 00点11分 4
level 8
星空冰鸟 楼主
25
朋友数为9或11时好学生有25人.
2016年11月24日 01点11分 5
level 8
星空冰鸟 楼主
假设每个人都有x各朋友,总共有y各好学生,(x,y为整数)
1. 极限的时候每个好学生超过的朋友数为(x+1)/2个(当x为奇数时)或x/2+1个(当x为偶数时).
2. 且排名第一的超过的好朋友书为x,第二的为x-1... (所以排名前面的不满足点1所述的极限值)
3. 那么可以列出方程:
当x为奇数,计算好学生数: y*(x+1)/2 + (1+(x-1)/2)/2*(x-1)/2 <=30*x/2
当x为偶数,计算好学生数: y*(x/2+1) + (1+x/2-1)/2*(x/2-1) <=30*x/2
简化得
当x为奇数,y<=30.5-30/(x+1)-(x+1)/4,得出当x=9或11时y最大=25
当x为偶数,y<=31-60/(x+2)-(x+2)/4,得出当x=,10,12,14,16时y最大=23
把30人按成绩顺序排成一圈,朋友之间连上线,是个有规律的图形
2016年11月24日 01点11分 6
x=9时,最多是25人,但是x=11时,达不到25人。
2016年11月24日 04点11分
@itfrombit [大拇指] 少了一个方程,当x为奇数, (x+1)/2<=30-y,x为偶数时要加上x/2+1<=30-y.要不后面的人没有足够的低成绩朋友来达到极限值。
2016年11月24日 05点11分
level 8
这题目写成矩阵形式容易理解一些。aij当第i名与第j名不是朋友时为0。是朋友时,i>j时为-1,i<j为1。i=j为0。很明显这是个反对称矩阵。x为奇数时,极限情况就是第一行1比-1多x个,第二行多x-2个,以此类推,到了第(x+1)/2行多1,之后到y行都多1。由于时反对称矩阵,多出来的1只能在后30-y列,对应的-1在后30-y行。由于每行每列都有x个不为0。于是(x+1)^2/4+y-(x+1)/2<=(30-y)x。x为偶数时就省了。算出来化简和楼上应该是一样的
2016年11月26日 01点11分 8
level 8
星空冰鸟 楼主
@sfsdf710
一步一步写的详细点:
1.如果学生A和B是朋友,那么A比B成绩好记做一次“好”,A比B成绩相平或差记做一次“差”。
2.那么全班30人,假设每人有X和朋友的情况,这一次考试结果比较完后“好”的总次数N好+“差”的总次数N差=30*x,其中N好<=N差,得出N好<=30*X/2,只有当没有出现任何一对朋友平分时N好=30*X/2=15X
3.借用老僧的说明,得出X为奇数,(可以偷懒下不用列偶数的式子)
4.假设全班有Y个好学生,计算这Y个好学生产生的“好”的总数必然小于等于15X(参照第2点)。我们来看看怎么列出的式子Y*(X+1)/2 + (1+(X-1)/2)/2*(X-1)/2 <=15X
5.每个好学生能产生至少(X+1)/2个“好”,同时,为了使Y值最大,需要尽可能的让这些好学生产生的“好”的数量越少越好。
6.将30个学生按分数从高到低排序记为1号到30号,很不幸发现我们没办法让每个好学生产生的“好”数都为(X+1)/2时让N好=15X。
7.假定第一名的学生没有和朋友平分的,则产生的“好”N1=X. (如果第一名的学生的朋友中有z个人和他平分,那么N1相应少z,同时基于点2可知N好也不再等于15X,要相应减少数量z,即式子4左右都减z不影响结果,就懒得列出有平分时的式子了)
8.同上假定2号也没有和朋友平分的,第二名学生产生的“好”N2>=X-1.同上(为了让N2小,最好2号为1号的朋友,否则N2=X会浪费了“好”的次数)
9.同上一直到第(x+1)/2号N(x+1)/2>=(X+1)/2.之后的好学生产生的好也都>=(X+1)/2
10.把Y个好学生产生的“好”求和得(X)+(X-1)+(X-2)+….+(X+3)/2+(X+1)/2+…+(X+1)/2总共Y个数相加
11.每个数中的(X+1)/2拿出来求和后剩下欠(X-1)/2名多出来的数为从1到(X-1)/2的自然数列求和。
12.求和得Y*(X+1)/2+(1+(X-1)/2)/2*(X-1)/2
画个图方便对照理解:
1-30按成绩排序,各不相同,1-25每个人比后四个人成绩高,这样除了5-25每个人有四条入的线4条出的线,1-4入的线为0/1/2/3.接下来把1-25缺少的出的线(5,4,3,2,1,1,1,....,1)都连接到26-30上刚好.
2018年07月26日 04点07分 11
何不从“非好学生”来解释。朋友都是2k+1个时,成绩最差的k+1个都是非好学生。朋友都是2k个时,依然是成绩最差的k+1个都是非好学生。那么就是非好学生为x个时,最多能有多少个好学生了
2018年07月26日 09点07分
@gf10025 这不就是我上一楼说的吗。。
2018年07月26日 09点07分
@东山老僧 是啊。只是觉得把简单的解释复杂了
2018年07月26日 09点07分
回复 gf10025 :而且这图也很不直观,应该用矩阵
2018年07月26日 10点07分
1