|||
从算术说起
在幼儿园是这样学数学的。桌上有一个苹果,再放一个苹果,是两个苹果,所以1+1=2。有5个苹果,拿走3个,还剩5-3=2个。苹果分成3排,每排5个,共有3x5=15个。总之,加减乘除都是很容易的,理解起来毫不费力,但为什么越学下去会发现数学越抽象呢?
算术虽然简单,可是用途非常广泛。不但能用于算苹果算绵羊,还能算一些看起来完全不同的东西。
比如甲在奔跑,速度是10,而甲前面有一辆车,车相对于甲的速度也是10,则可算出车的速度是10+10=20。速度和苹果非常不同的东西,但也同样能用加法解决。又如,有个足球重量为10,我们一脚踢过去,足球飞出去那瞬间的加速度是5,我们可以算出那瞬间足球受到的力是10x5=50。
为什么截然不同的现象都要用到算术?因为数学本质上是抽象的。是的,即使幼儿园的数学简单,它本质上也是抽象的。这句话如何理解?
有这样的脑袋急转弯题目。什么时候1加1不等于2?其中一种回答是一滴水加一滴水还是一滴水。又有这样的题目,树上有10只鸟,一枪打下一个,还剩几个?答案是没有了,因为全吓跑了。
上面这些题目能说明算术错了吗?1加1不等于2?10减1不等于9?不能。它只能说明,加法不能用于水滴相加这种情况(或者1不能解释为1滴水),减法不能用于打鸟这种情况。
算术本质上是一些数进行运算,我们规定了它的运算规律。它是抽象的,不管现实世界如何,它都是那样子,永远都是1+1=2,1+2=3。我们可以对数和运算给予解释,将它和现实世界联系起来。在有的解释下,算术成了很有用的工具,比如数苹果。这些数对应着苹果的数量,加法就是将苹果放在一起,苹果的数量规律和算术规律完全相同(注释1)。又如算术可用于计算速度计算受力,因为这些日常现象的规律和算术规律相同。但在有的解释下,这工具不能用,比如水滴,比如打鸟。
正因为数学是抽象的,它可以有不同的解释,所以才会有广泛的应用。它是抽象的,所以不用做实验检验一个数学定理是否正确,所以它不会错,除非出现自相矛盾。它是抽象的,所以可能有些数学会完全没有用,因为找不到适合它的解释。
人们花了很长的时间才认识到了数学的抽象性。3减5等于几?我们现在都知道等于—2。但负数究竟存不存在,人们争论了很久,因为那时人们还不理解数学的本质。—2个苹果存在吗,这是什么意思?后来发现—2可以理解为欠了两个苹果。能将负数开方吗?是5,但存在吗?它是多少?后来将这类数称为虚数,规定了它们的运算规律,将它们纳入数学中。再后来,发现可以在坐标系中表示虚数,还发现它们在物理上有很多应用。
数学本质上是抽象的,就算负数和虚数没有找到解释,在现实中没有任何应用,只要它们不出现矛盾,就可以将它们加到数学中去。
我们之所以觉得小学数学简单,是因为这些数学运算是从熟悉的日常经验中总结出来的,尽管它们本质上不依赖于这些经验存在,可以有其他的解释。深入学下去,会觉得数学越来越抽象,那是因为我们学一些更深层更普遍的结构,它们不是直接来源于生活经验。
数学是抽象的,它的元素和运算都可以人为规定。因此我们可以构造不同的算术,比如布尔代数。下面通过布尔代数来体会一下数学的抽象性。
布尔代数:最简单的抽象数学
二元布尔代数是具有广泛应用的抽象数学里最简单的,起码我知道的是这样。数学都是抽象的,这里特别指出抽象数学,是指这类数学先有抽象的运算,并不知道这运算在现实世界中意味着什么,后来才找到应用,或者是根本没有应用。(注释2)小学算术从日常经验中总结出来,按这里的理解不是抽象数学。
实际上,相对来说布尔代数不算抽象,因为很容易将布尔代数和日常生活结合起来。很多数学远离日常生活经验,比它抽象得多复杂得多。这里只谈二元布尔代数,所以这篇文章说的布尔代数都是指二元布尔代数。
布尔代数的定义:
它只包含0和1两个元素,有三种运算,乘法运算、加法运算和负运算。
1、乘法运算:
0x0=0;0x1=1;1x0=0;1x1=1
2、加法运算:
0+0=0;0+1=1;1+0=1;1+1=1
3、负运算:
0’=1,1’=0
在布尔代数里1+1=1,和通常的算术不同。1+1=2在这里肯定是不成立的,因为这里根本没有2这个元素。那有没有矛盾呢?1加1究竟等于1还是等于2?没有矛盾,这里是另一个体系。0、1、+、x这些符号只是碰巧和以前的算术相同,我们完全可以用别的符号代替。比如用m代替0,用n代替1。就如同苹果这个词,既可以指某种水果,也可以是手机品牌,它们只是碰巧名字相同。
我们规定运算的优先顺序是负运算、乘法运算、加法运算。所以,a+(bxc)和a+bxc是同一个式子,而(a+b)xc和a+bxc不是同一个式子。
理论上还可以定义其他的运算,但上面这三种运算已经够了,其他的运算都可以用它们构造出来。
举个例子,我们定义一种Å运算:
1Å1=0,1Å0=1,0Å1=1,1Å1=0。
可以证明:
aÅb = axb’ + a’ xb
Å运算又称异或运算。
在这种简单的代数里,我们也有各种各样的定理。比如,任何运算都可以用加法乘法负运算构造出来,而且有一种固定的方法来找到这种构造。
布尔代数还有其他更常见的定义,见注释3。
布尔代数的应用
这种古怪的布尔代数有什么用呢?用处很多,对元素和运算的解释不同,有不同的应用。
在逻辑学的应用
把1理解为真,0理解为假,+理解为或者,x理解为并且,’ 理解为并非。
例子1:
太阳是三角形的。因为这句话是假的,所以它的真值是0。并非太阳是三角形的,这句话的真值是0’,即1,也就是真的。也就是说,一个命题的真值是a,则它的否定是a’。
例子2:
张三是男的,并且李四是女的。这句话包含两部分,两部分都是真的它才真,有一部分是假的,它就是假的。比如李四如果不是女的,这句话就假了。
这句话的真值可用axb表示,因为a和b都是1,axb才是1,如果有一个0则axb的值就是0。
在电路设计的应用
布尔代数在电路中有极重要的应用,我们天天用的手机和电脑的电路设计都离不开布尔代数。下面举例说明如何用布尔代数来帮助设计实现加法的电路。
在数字电路里,有两种电压,分别是低电压和高电压,又叫低电平和高电平,对应着0伏和5伏(有时候是其他的数值)。我们把布尔代数里的0理解成低电平,1理解成高电平。注意,这里0和1对应的是不同的电压状态,它和具体的电压数值没有关系,如刚才说的高电平是5伏,但这里用1而不是5表示。
数字电路里有门电路,将电压在不同的状态间进行转换。三种布尔运算对应的是下面三种电路。
负运算对应的是非门。非门总是把电平从一种状态转换成另一种状态,输入低电平输出高电平,输入高电平则输出低电平。
加法运算对应的是或门,A和B有一个高电平,则Y高电平,两个都低电平则Y低电平。
乘法运算对应的是与门。在与门里,输入A和B里有一个是低电平,则Y输出的是低电平,A和B都是高电平,则Y是高电平。
现在想用这些门电路实现一位数的加法运算,该怎么办?因为只有低电平和高电平两种状态,所以只能有0和1两个数字,所以只能采用二进制。即0+0=0,0+1=1,1+0=1,1+1=10。注意这里的+是通常的算术加号,而不是布尔代数的加法运算符号,所以这里用斜体表示。因为是二进制,这里的10相当于通常的2。
即要设计一种电路,有输入A和B,输出C和S。A是输入的第一个加数,B是输入的第二个加数,S对应是结果的个位数,C对应的是结果的第二个数。它们的关系如下表。
表格里A、B、C这三个数的关系对应着与运算:AxB=C,所以用与门实现。
A、B、S这三个数的关系对应着另一种运算,刚好是上面说的Å运算,即C=AÅB = AxB’ + A’ xB,也可用相应的门实现。
这样实现的电路称为半加器,具体电路图如下:
注释:
1、可以想象出不符合算术规律的苹果,比如两个苹果放在一起突然消失了,但这时候算术仍然是正确的,只是在这里它不能用了。
2、按这里的理解,严格来说布尔代数也不是抽象数学,因为布尔发明这种代数的时候希望用它来表示逻辑推理。
3、二元布尔代数的另一种定义
这是数学上更常用的定义方法。下面的a、b都是变量,即代入0或1式子都成立。a和b的运算符合下面的规则。
(1)交换律
a+b=b+a;
axb=bxa
(2)分配律
ax (b+c)=axb+axc;
a+(bxc)=(a+b) x (a+c)
(3)零元运算
a+0=a
(4)单位元运算
ax1=a
(5)负运算
a+a’=1;
axa’=0
可以证明,两种不同的定义实际上是等价的,即元素间的运算,在两种定义下的结果相同。
比如在这种定义里有0+1=1。证明如下:由交换律有a+0=0+a,由零元运算有a+0=a,所以有0+a=a,用1代入a得,0+1=1。
又比如可以证明0’=1。从负运算得0+0’=1,从零元运算得0+0=0,又因为刚才证明了0+1=1,所以0’=1。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-25 01:16
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社