1.1.2 “函数”是很可笑的名词
——普雷斯顿·哈默(Preston C.Hammer),《标准和数学术语》(Standards and Mathematical Terminology)
机器能做各种事情。面包机吞进面包的原材料,吐出面包。烤箱吞进各种东西,然后以更热的温度吐出来。将一个数字加1的计算机程序可以认为是一台吞数字的机器,吐出来的是放进去的数字加1。婴儿是吃东西沾上口水再吐出来的机器。
无论如何,数学家决定用“函数”这个奇怪的词描述吞数字然后吐出其他数字的机器。更好的名字也许是……什么都行。我们就称它们为“机器,”等我们习惯了这个概念,我们也偶尔会称它们为“函数,”但只是偶尔。[1]让我们用我们仅有的工具——加和乘——来发明一些吞数字然后吐出其他数字的机器。
图1.1 我们的一台机器
1.最无聊的机器:如果我们放进去一个数字,它会吐回相同的数字。
2.加1机器:如果我们放进去一个数字,它会把吞进去的数字加1然后把结果吐出来。
3.乘2机器:如果我们放进去一个数字,它会把吞进去的数字乘2然后把结果吐出来。
4.自乘机器:如果我们放进去一个数字,它会让吞进去的数字乘自己然后把结果吐出来。
这些机器的名称挺长,因此我们来发明一些缩写。数学中的一切符号,无论看上去多复杂,都只不过是我们可以用词语描述的事物的缩写,只不过是因为我们太懒了。由于他们通常不告诉你这些,大部分人看到一堆他们不理解的等式时都会被吓住,但如果看到DARPA或UNICEF或SCUBA之类的缩写则没那么害怕。
而数学其实就是许许多多的缩写加上推理。在我们的旅途中我们将会发明一堆缩写,因此有必要让我们发明的缩写能提醒我们谈论的是什么。例如,如果你想谈论圆(Circle),两个合理的缩写是C和○。正方形(Square)比较好的缩写是S和□。这太明显了,你可能会奇怪干嘛还要解释,但当你看到满满一页方程,心想“啊哦!真吓人!”的时候,要记得你看到了无非是以高度缩略的形式表示的一堆简单思想。在数学的所有部分中都是如此:解释这些缩写就成功了一大半。
我们想用更简短的词来谈论我们的机器,因此我们需要发明一些好的缩写。什么是好的缩写呢?这由我们决定。我们来看一下可能的选项。我们可以这样来描述乘2机器:
如果我们喂它3,它吐出6。
如果我们喂它50,它吐出100。
如果我们喂它1.001,它吐出2.002。
我们可以继续对所有可能的数字都给出这样的描述。但这太浪费时间了,而且我们永远也做不完。我们可以一次性说出这个有无穷个句子的袋子,只需说“如果我们喂它(某个东西),它吐出2·(某个东西),”在其中我们将具体的(某个东西)设为未知。我们可以把它进一步缩写为某个东西2·某个东西。
就这样,通过让输入机器的数字保持为未知,我们把无穷长的语句列表浓缩成了一句话。我们可以总是这样做吗?也许不能。我们不知道。不过现在我们只考虑只需用加和乘就能完整描述的机器,这一点确保了我们可以将无穷多的一系列语句总结成一句话。其余的那些机器也可以缩写成这种方式:
1.最无聊的机器:某个东西某个东西;
2.加1机器:某个东西某个东西+1;
3.乘2机器:某个东西2·某个东西;
4.自乘机器[2]:某个东西(某个东西)2。
如果觉得不明白,可以看一些例子:
1.最无聊的机器:
33
12341234
2.加1机器:
34
12341235
3.乘2机器:
36
10002000
4.自乘机器:
24
39
10100
我们继续尽可能地缩写这些机器,同时不要做过头。我说“做过头”的意思是“丢失信息”。例如我们可以将莎士比亚的所有作品缩写为符号♣,但这没有什么用,因为我们无法从中提取出缩写的信息。
我们需要多少缩写才能完整描述我们的机器呢?我们需要给出以下内容的名称:(1)机器本身,(2)我们放进去的东西,以及(3)我们拿出来的东西。此外我们还要做一件事情:(4)我们需要描述机器如何工作。
我们可以将机器(Machine)命名为字母M,这样我们就不会忘记它指的是什么。我们可能想同时谈论不止一种机器,因此我们可以给字母M戴上不同的帽子(,等等)来代表不同的机器。我们前面用某个东西来指称放到机器中去的一切,我们可以进一步将某个东西(stuff)缩写成s。这样我们就有两个缩写了,我们可以用前两个缩写来构造第3个缩写。这是一个很巧妙的想法,我从未听谁承认过自己是这样做的,这个做法很怪异,也是“函数”最让人混淆的地方。
我说我们可以用前两个缩写来构造第3个缩写是什么意思呢?我们应当发明什么名称来谈论“如果给机器M喂某个东西s,机器吐出来的东西”?如果我们可以用缩写M和s来构造这个名称,我们就不需要引入新的缩写,这样我们就可以尽可能少用一些符号。我们可以称之为M(s)。M(s)就是“如果给机器M喂某个东西s,机器吐出来的东西”的缩写。
我们要给3个事物命名,但实际我们只命名了2个,然后就停下来了,四处看看有没有人,然后偷偷用前两个名称作为“字母”组成第三个名称。这个想法很古怪,但一旦习惯了就能带来很大帮助。如果你以前对“函数”很迷糊,不要担心。它只不过就是与机器和缩写有关的简单玩意。他们只是没有告诉你这个。
这样我们就有了3个名称,但我们还没有用刚刚发明的缩写语言描述任何具体的机器。我们重新描述一下前面那4台机器。我没有按原来的顺序,看你能不能说出哪台机器是哪台(例如,哪台是加1机器,哪台是自乘机器,等等。)
1.M(s)=s2;
2.=2s;
3.=s;
4.M(s)=s+1。
这种高度缩略的形式让人糊涂,因为一方面我们只描述了输出,或机器吐出的东西。像M(s)=s2这样的等式[3]语句的两边谈论的都是机器M吐出来的东西。另一方面,这个语句又同时谈了所有3个东西:机器本身、我们放进去的东西以及我们拿出来的东西。再来看看这个疯狂的缩写:
M(s)=s2,
我们在两边谈论的都是输出。但我们对输出的缩写M(s)是用另外两个缩写——机器本身的缩写M和我们放进去的东西的缩写s——构造的怪异组合。因此在语句M(s)=s2的左边就有3个缩写。这还不是全部,我们还要描述机器的运作。语句的右边,s2,是基于输入写的对机器输出的描述。
我们用两种方式说了相同的东西:左边的M(s)是我们给输出起的名称,右边的s2则是对输出的描述。由于我们用两种方式说的是相同的东西,因此在中间放个等号,这样我们就描述了这台特定的机器,用很少的符号就表达了无穷多不同的语句。之所以说它表达了无穷多不同的语句是因为它告诉我们:如果你将2放入机器M,它会吐出4。如果你将3放入机器M,它会吐出9。如果你将4.976放入机器M,它会吐出(4.976)·(4.976),等等。
[1]我们在这本书中会用一些非标准术语,不过我必须强调我没有说我的术语比标准术语“好”,我也没有建议其他书这样用!偶尔发明我们自己的术语是为了提醒我们创造的数学世界完全属于我们自己。这是我们从头开始建造的世界,因此我们可以决定事物怎么称呼。但请不要认为我的目的是让所有人都转用一组新的术语。“函数”一词可能不是最好的,但一旦你习惯了,也没那么糟。
[2]我们将(某个东西)·(某个东西)缩写为(某个东西)2。更一般地,我们将“(某个东西)乘自己多少次得到的某个数”缩写为(某个东西)次数。你不要说“我不懂幂”,不需要你懂。这里只不过是乘的缩写。
[3]“等式”这个词让很多人感到不舒服,这种感觉夹杂着害怕和厌烦。那么什么是“等式”呢?我们曾说过数学符号只不过是可以用词语描述的各种东西的缩写。同样,“等式”也就是语句,缩写的语句。一旦认识到这一点,“等式”这个词就没那么糟糕了。我们在整本书中都用到这些词。