c++复数加减乘除_少年,学点加减乘除呗?

4b7955bdebce422bbc350d7f127a64ce.gif

很多人,刚上大学或者还没到大学报到呢,就以为自己会加减乘除了。笔者本人也曾这样狂妄过~谁还没有个年少轻狂的时候啊。但是,约在十年前,也就是在本人当了十年左右的物理教授后的某一天,我发现关于加减乘除以及与这些运算相关联的数,我还真不懂。本文给即将走入或者已经入了大学的少年朋友们介绍一丁点儿关于数及其运算规则的基础知识~按说是中学的时候就该学到的,希望等到他们博士毕业的时候能自信地说:“这篇文章里的内容我都懂呃”。

(本文内容取自 曹则贤 《云端脚下~从一元二次方程到规范场论》,科学出版社,2020)

撰文|曹则贤(中国科学院物理研究所研究员)

关于数,一开始是自然数,1,2,3…,计数用的。自然数是有,是存在,形而上地会令人想起虚无、空,于是我们的先辈艰难地引入了0——0的符号比概念出现得更晚[1]。自然数求和是天然的,任意两个自然数之和都还是自然数,而且加法还满足交换律,m+n=n+m。这是经验总结。减是加的逆操作,一个实实在在的物理过程。自然数的减法有些尴尬,当m≤n时,m-n的结果不在自然数中。当m=n时,我们得引入新的对象0,m-n=0。这个还算相当自然。当m<n时怎么计算m-n?计算m-n竟然还真有需求,比如你从朋友处借了3个金币转天他从你这里拿走5个金币,肉疼的感觉会让你思考3-5的意义。针对m<n的情形下m-n问题,人们不得不引入负数的概念 (印度人约在公元9世纪才引入负数)。这样,我们就有了…-3,-2,-1,0,1,2,3…这样的数系,称为整数,包括负整数、0和正整数。正整数就是自然数。整数对于加法及其逆运算,减法,都是封闭的。不同的是,m+n=n+m,而m-n=-(n-m)。

乘法也是比较自然的。自然数的乘法是闭合的,任意两个自然数的乘积还是自然数,且具有可交换性,m×n=n×m。整数的乘法也具有闭合性,任意两个整数的乘积还是整数,且具有可交换性,m×n=n×m。但是,整数的乘法有些尴尬,比如 0×n=0就相当抽象;此外,整数乘法还有正负为负、负负得正的规则,(-m)×n=m×(-n)=-(m×n),(-m)×(-n)=m×n。凭什么呀?从物理的角度看,1×2、0×2、3×(-2)和(-3)×(-2) 中的乘法作为物理操作可能就各有不同。我们先记着有这些事儿,此处不作深入讨论,读者在学物理的时候若遇到乘法请多留意一下。

我们会不停地遇到数系扩展的情景。为了方便深入地理解这个问题,咱们先考察一个有趣的现实场景。魔术师从盛着3个小球的碗中抓出1, 2, 3个小球时,你看到也相信碗中相应地剩下2, 1, 0个小球。当魔术师从中拿出第4个小球时,你会在坚持碗中的小球数为0的同时思考这第4个小球的来源。这个情景一个值得关注的问题是,在这之前你关注的只是“碗~魔术师的手”这个体系,但在他拿出第4个球的时候你把体系扩展成了“碗~魔术师的手~未知的地方”的复杂体系。还有,当这个未知的地方被证实是碗或者魔术师的手的时候,这个复杂体系又退化回到“碗~魔术师的手”这个简单体系。类似这样的扩展体系的事情,在数系这个概念的发展过程中会多次出现。

除法是乘法的逆 (人后悔了就幻想有逆操作),但是连正整数的除法也遭遇了麻烦。首先,正整数除法没有封闭性。当m<n时商m/n没有着落,m>n时也只有针对某些特定的m, n, 商m/n才是正整数。面对5/3,8/6, 我们确实不知道该怎么办。那就把数系扩展一下吧,把0纳入考虑,0/m=0还算有意义,众人假装对空吃饭结果肯定是饿肚子,都理解。那m/0呢,这个可真没啥意义—谁认为有意义谁说说。扩展数系,对整数体系再纳入任意两个整数之商,把任意正整数之商m/n称为rational numbers (比例数)。你看,数系与运算法则是一体的:自然数可以 (无碍地) 加乘,整数可以 (无碍地) 加减乘,

你可能感兴趣的:(c++复数加减乘除)