返回题库

多语言群体

MULTILINGUAL

专题
Discrete Math / 离散数学
难度
L4

题目详情

一个群体有 70 名成员。

对任意两名不同成员 X,YX,Y,都存在一种语言满足:XX 会说但 YY 不会说。

问:这个群体至少包含多少种不同语言?

A group has 70 members. For any two members XX and YY there is a language that XX speaks but YY does not, and there is a language that YY speaks but XX does not. At least how many different languages are spoken by this group?

Hint

8 choose 4 =(84)=70= \binom{8}{4} = 70

解析

至少 8 种语言。

把每个人会说的语言集合记为集合 SiS_i。题设对任意 X,YX,Y 都存在语言在 SXSYS_X\setminus S_Y 中,等价于

  • 对任意 XYX\ne YSXS_X 不可能SYS_Y 的子集。

因此 {Si}\{S_i\} 在“集合包含”偏序下构成一个 反链(antichain)。

若总共有 mm 种语言,则反链的最大规模由 Sperner 定理给出:

maxantichain=(mm/2).\max |\text{antichain}| = \binom{m}{\lfloor m/2\rfloor}.

需要 (mm/2)70\binom{m}{\lfloor m/2\rfloor} \ge 70

  • m=7m=7 时最大为 (73)=35<70\binom{7}{3}=35<70
  • m=8m=8 时最大为 (84)=70\binom{8}{4}=70

所以至少需要 8 种语言(且可以达到)。


Original Explanation

This group has at least 8 different languages.

Solution

Let's go with hit and trial.

  1. Everyone knows the same language, that is a contradiction. Therefore it must be more than 1 language.
  2. So, P1P_1 knows one language and P2P_2 knows another language. But P3P_3 will know the same language as either P1P_1 or P2P_2. We cannot extend this to 3 people.
  3. Might be true, but it is hard to confirm.

Let's try a different approach. Let's calculate the largest group possible, given the number of languages.

  1. If there are three languages (L1,L2,L3L_1, L_2, L_3), we can construct the following table.
L1L_1 L2L_2 L3L_3
P1P_1 knows
P2P_2 knows
P3P_3 knows
  1. If there are four languages (L1,L2,L3,L4L_1, L_2, L_3, L_4), we can construct the following table.
L1L_1 L2L_2 L3L_3 L4L_4
P1P_1 knows
P2P_2 knows
P3P_3 knows
P4P_4 knows

This is decent, but I think we can do better by assigning more than one language to each person.

L1L_1 L2L_2 L3L_3 L4L_4
P1P_1 knows knows
P2P_2 knows knows
P3P_3 knows knows
P4P_4 knows knows
P5P_5 knows
P6P_6 knows knows

Now, there are 66 people, because we assigned two languages. The number 6 is coming from choosing 22 from 44, i.e. (42)=6\binom{4}{2} = 6

Note that if we assign the same set of languages to two people (say: L1L_1 & L2L_2) then these two members will fail the desired criteria. Therefore we have to choose different sets of languages for each member, and one set cannot even be a subset of another set.

Also, note that the term (nx)\binom{n}{x} takes the maximum value for x=n/2x = n/2.

Therefore, the maximum number of people for a given number of languages is (nn/2)\binom{n}{n/2}, where nn is the number of languages.

Now, looking at the original question, 70=(84)70 = \binom{8}{4}, i.e. the maximum number of languages is 88, and the maximum number of languages that one person knows is 44.

Note that we can also