2023年IOL个人赛第5题分析和解答

前几天在公众号上分享了今年在保加利亚举行的第20届语言学奥林匹克竞赛(IOL)的赛题。

有读者留言:题目看了,但该怎么做呢?

目前IOL官网上尚未公布标准答案,我在语奥方面经验和水平有限,下面仅以个人赛第5题为例,分享一下个人对这道题的分析和理解,以及我得到的答案,作为抛砖引玉吧。

个人赛第5题是一道数字题,也是题目篇幅最小的一道题。

题目中给出了5个数字及其在苏皮勒语中的写法。换句话说,这5个数字就是某种意义上的训练集,我们需要利用它们构建一个自洽的逻辑,用来解释苏皮勒语中的数字系统,然后在这个自洽逻辑的帮助下,写出两个苏皮勒词汇对应的阿拉伯数字(a),和五个阿拉伯数字对应的苏皮勒词汇(b)。

在进入对题目的分析之前,我们简单地了解一下我们的语言对数字的描述。

人类对数字的概念,产生于人类文明演化和发展之初。在原始部落的狩猎和采集活动中,人们的收获往往是不固定的:今天打了一只山鸡回来,收获了10几颗酸枣儿;明天可能就颗粒无收要饿肚子。久而久之,人们就渐渐有了“多”和“少”的概念,继而通过结绳、刻痕、收集筹码等方式开始尝试计数。

随着人类接触的物体的数量越来越多,一个一个地数显然过于费时费力,这个时候就慢慢产生了进制——人们用某一个特殊的记号或者筹码代表一个固定的较大的数字。因为人类双手有十根手指,所以很自然地,在包括古埃及、古印度和中国古代在内的几乎所有古代文明都采用了十进制,只有古巴比伦人使用了60进制,玛雅人使用了20进制。在很多都市传说中,阿努纳奇和伊萨姆纳都来自于外太空,不属于地球文明。这里不展开。

上图为《大不列颠百科全书》中介绍的古埃及的十进制计数,及258458的写法。我们可以发现,在每个数位上,埃及人通过使用重复的记号表示这个数位上的数字,比如个位数为8,需要重复写出8个“|”。

随着语言和文字的进一步发展,人们慢慢摒弃了这种冗长的计数方式,开始对十进制的基本数字1 – 9使用特殊的文字(数字0的概念出现得更晚一些),最终完成了对各自语言中十进制数字系统的构建。

比如862在中文中是“八百六十二”,在英语中是“eight hundred sixty-two”。这种方式如果用数学来表示,即:

862 = 8 × 100 + 6 × 10 + 2

我们只需使用5个语言符号即可以表达这个数字。这5个语言符号分别为8,100,6,10和2。在中文中,它们一一对应于5个汉字,在英语中,虽然6和10合成了一个词,但在音节上,sixty仍然可以看成six-ty,-ty表示整十。

如果我们观察罗马数字,就会发现它的基本数字有7个,分别为I(1)、V(5)、X(10)、L(50)、C(100)、D(500)和M(1000),它们可以看成是十进制和五进制的一个混合模式。这种模式的起源也和我们一只手有五根手指有关。和单纯的十进制不同,罗马数字有“右加左减”的规则,即在较大数字的右边写上较小数字,表示大数加小数;在较大数字的左边写上较小数字,则表示大数减小数。

罗马数字的计数方式。

人类文明演化至今,发展出来大约5000到7000种语言,尽管绝大多数语言中的数字系统仍然使用十进制,但它们在具体的表达方式上存在着较大的差异。

比如,法语对数字的表达就很令人崩溃,法语中的基本数字为1 – 20。21 – 60使用了一般性的十进制方式,例如quarante是40,cinq是5,45就是quarante-cinq。

61 – 79则是基于60和1 – 19两个数字的加法,例如soixante是60,seize是16,76就是soixante-seize。

80是quatre-vingts,意思是4个20。

81 – 99则是基于80和1 – 19两个数字的加法,例如dix是10,90就是quatre-vingt-dix,字面意义上就是4个20再加上10。

法语中对数字的表达说明了语言中数字系统的复杂性,苏皮勒语是个非常不起眼的小语种,它对数字的表达方式又是如何?

下面我们来看看IOL的这道题。需要提醒的是,语奥的目的不是让我们掌握一门语言,而是通过逻辑分析来构建一个自洽系统。

首先我们观察一下5个训练样本中重复出现的单词或者词根。

词频最高的单词是na。进一步发现,代表的数字越大,na在词汇中出现的次数就越多。那么na是不是表示十进制中数位的分隔符呢?

并没有这么简单。我们发现个位数7中没有出现,十位数21中出现了1次,百位数285中出现了2次,千位数1639中出现了3次,但同时,百位数626中也出现了3次。所以不能简单地认为na和十的幂次一一相关,但它肯定和此有关。

类似于前面对十进制数字系统的分析,我们可以将na看作是数字不同部分的一种连接,或者说一种加法

接下来,注意beɲjaaga这个单词在21和1639中都出现。

既然na表示加法,那么在21中,beɲjaaga和niŋkin加起来等于21。那么beɲjaaga和niŋkin哪一个更小?

在1639中,beɲjaaga位于词汇的中间部分,前面有一个na,后面有两个na,不论该语言中数位从左到右呈现降幂排列还是升幂排列,beɲjaaga都不应该很大(比如表示1000),也不应该太小(比如表示个位数)。

结合beɲjaaga和niŋkin加起来等于21,可以初步判断出beɲjaaga比niŋkin,所以在该语言中,数位从左到右呈降幂排列,即先表示高位,后表示低位

再仔细观察1639,beɲjaaga后面有两个na,分别连接了kɛ和baaricyɛɛre两个单词,从上面数位顺序的判断可知,beɲjaaga > kɛ > baaricyɛɛre。

又已知beɲjaaga < 21,所以这三个数字加起来不会超过63,因此可以推断出,

beɲjaaga + kɛ + baaricyɛɛre = 39

因此,beɲjaaga > 13

结合beɲjaaga + niŋkin = 21,可以推出最合理的一组对应关系:

beɲjaaga = 20,kɛ = 10,baaricyɛɛre = 9,niŋkin = 1

当然,有读者朋友可能会提出,以下这组对应关系也可以满足这两个方程:

beɲjaaga = 18,kɛ = 15,baaricyɛɛre = 6,niŋkin = 3

但是,和18/15这样的基本数字相比,20/10更加符合十进制的特征。

接下来,观察7 = baashuunni,其中shuunni这个词根在285和626中都出现了,说明baashuunni是个复合词,由baa和shuunni组成。

再观察626中的baani,根据数位顺序可知baani = 6。又已知baaricyɛɛre = 9。

这三个单词中都有baa这个前缀,对应的数字都大于5,所以可以猜测baa 作为前缀表示加5

这样ni就对应于1,我们已知niŋkin = 1,是不是矛盾?并不。在很多语言中,基本数字在不同的数字中都有可能出现变体,比如英语中基本数字3是three,在13和30中就变成了前缀thir-。

恰恰相反,正是因为niŋkin 中的前缀为ni,所以更加坚定了我们对baani = 5 + 1的判断。语奥的目标,是找到逻辑自洽的体系。

根据baa 表示加5的结论,我们得出,

shuunni对应于2,cyɛɛre对应于4

这里cyɛɛre的写法不确定,因为在1639中有sicyɛɛre和(baa) ricyɛɛre,它们中有一个是变体。

在1639中,除去后面的beɲjaaga + kɛ + baaricyɛɛre = 39,可知kampwɔhii sicyɛɛre表示1600。而sicyɛɛre表示4,所以这里使用的必定不是加法,而只可能是乘法!

可以推测出,kampwɔhii = 400

至此,对数字7,21,1639的解析完成,我们得出:

niŋkin = 1
shuunni = 2
sicyɛɛre = 4
baa作为前缀表示加上5
baani = 6
baashuunni = 7
baaricyɛɛre = 9
kɛ = 10
beɲjaaga = 20
kampwɔhii = 400

我们接下来观察626。

按照我们前面构建的规则,beetaanre na baani应该等于26;但我们已知beɲjaaga是20,beɲjaaga na baani表示的是26,这里似乎出现了矛盾?

在我们的规则中,na表示加和是个基础,所以这里可以理解为,

kampwoo na ŋkwuu shuunni na beetaanre表示的是620

注意到ŋkwuu和taanre在285中也出现了。默认最后一个单词kaŋkuro = 5,所以,

ŋkwuu taanre na beeshuunni表示的是280

如果我们用数学等式来表示这两个关系,就可以得到:

kampwoo + 2 × ŋkwuu  + bee-taanre = 620

taanre × ŋkwuu + bee-shuunni = 280

再根据kampwɔhii = 400,猜测kampwɔhii是kampwoo的某个变体,所以kampwoo很可能就是400,这样进一步简化得到:

2 × ŋkwuu  + bee-taanre = 220

taanre × ŋkwuu + bee-shuunni = 280

根据bee-taanre和bee-shuunni两个单词的构词法,可以初步推测出taanre和shuunni (2)的量级一样,都是个位数。从我们已经推测得到的单词表中发现,个位数中仅仅缺失了3,所以可以猜测taanre = 3

而根据数位顺序,因为后面的na跟着的是个位数,所以bee-taanre和bee-shuunni表示的是某个十位数的整数倍。

将bee-taanre看作3 × bee-,bee-shuunni看作2 × bee-,原来的两个关系式变成了一个二元一次方程组,解得:

ŋkwuu = 80bee- = 20

这里的bee-和beɲjaaga不矛盾,bee-表示的是前缀20,beɲjaaga表示的是基本数字20。好比,baa-表示的是前缀5,kaŋkuro表示的是基本数字5。

至此,我们的数字体系已经完备:

1. 从左到右,表示数位从高到低的数字,两个数字之间的na表示加和,两个数字之间没有na的话表示乘积。

2. 基本数字:niŋkin = 1,shuunni = 2,taanre = 3,sicyɛɛre = 4,kaŋkuro = 5。kɛ = 10,beɲjaaga = 20,ŋkwuu  = 80,kampwoo = 400。

3. baa-作为前缀表示加上5,bee-作为前缀表示乘以20。

4. kampwoo用在乘法时的变体为kampwɔhii;sicyɛɛre用在加法时的变体为ricyɛɛre。

最后来完成答题。

(a) kampwɔhii shuunni na kɛ表示400 × 2 + 10 = 810;

ŋkuu na baataanre表示80 + (5 + 3) = 88。

(b) 15 = 10 + 5 = kɛ na kaŋkuro;

109 = 80 + 20 + (5 + 4) = ŋkwuu na beɲjaaga na baaricyɛɛre;

152 = 80 + 3 × 20 + 10 + 2 = ŋkwuu na beetaanre na kɛ na shuunni;

403 = 400 + 3 = kampwoo na taanre;

1534 = 400 × 3 + 80 × 4 + 10 + 4 = kampwɔhii taanre na ŋkwuu sicyɛɛre na kɛ na sicyɛɛre。

答题结束。