数学的变量与计算机语言的变量不同。数学的变量更抽象,是真的变量。而计算机语言的变量是假的,其实还是属性,是某个内存地址或者寄存器的属性。
一个非程序员A,第一次编程,看到变量,会很疑惑,比如我当年,“这是什么东西的 的变量啊”? 后来明白了,原来就是一个地址可以存不同的东西啊,明白了。指针?这不是很明显么,就是地址啊,有什么难的? 另一个非程序员B,第一次编程,看到变量,说,哦,我知道,数学上小学就学了的,变量就是数学上的变量啊,懂了。结果看到指针,蒙了,数学上没有指针啊,到底什么是指针啊?
人和人的思维方式不一样,从对数学的态度可以看出。有的人,比如冯诺伊曼,说“ You don't need to understand mathematics, you just get used to it". 这种人 就是上面的非程序员B。这些人成为数学家的话,一般会成为分析学家。中国培养出的 职业数学家,大多是分析学家,比如张益唐之类,解决问题能力很强,一般不自己发明 理论。 另外一些人,比如Grothendieck,一定要把数学理解成某种结构才行,这种人成为数学 家的话,会成为几何或者代数学家。这些人解决问题的能力不一定强,比如 Grothendieck连57不是prime都不知道,但他发明了改变数学界的理论。这些人也是非 程序员A。 上述两种人可以用一个简单的测试来区分:给他一个玉米棒子,看他怎么啃。分析学家 会啃得乱七八糟的,代数家会啃得一排排整整齐齐的。我有时在聚会时让大家做这个游 戏,目前发现,中国人还是分析家居多。
评论
comments powered by Disqus