我是靠谱客的博主 忧虑帽子,最近开发中收集的这篇文章主要介绍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 (比例数)。你看,数系与运算法则是一体的:自然数可以 (无碍地) 加乘,整数可以 (无碍地) 加减乘,有理数才可以(无碍地)加减乘除。

几何的发展也给我们带来了数系扩展的需求。按照平面的欧几里得几何,直角三角形有勾股定理,c2=a2+b2。当a=b=1时,c2=2。但是,c2=2的c就不可以是比例数,任何m/n的平方都不可能是2。引入新记号√,定义为469844123158f98414d3f9f81155448e.png。√2不能是比例数,所以是非比例数 (irrational number) 。我们对√2这样的数太不习惯了,或者说√2这样的数太奇怪了,所以形容词irrational 就有了奇怪的、不合理的之类的贬义。Irrational number 汉译无理数,相应地,rational number的汉译为有理数。参考关于整数的考量,有理数也不妨加上负号。好了,我们现在有了有理数系。所有的有理数和无理数,都是分立的存在。

几何上的直线,选定一个点作为原点,定义其对应0,同线上所有点建立起一一对应的数定义为实数,记为R。实数是连续的存在,任意一个实数的任意小的邻域内都有无穷多个实数。我这里是大白话的描述,严谨的实数连续性理论,我可读不懂。我们暂且就按照直线的图像来理解实数,范围为 (-∞, ∞ ),是连续的。有理数 (整数是有理数的子集) 是实数中的分立的存在,测度为零 (意思是不占地方) 。 与有理数互补的是无理数。无理数也是个有结构的存在,不是简单地一个无理数的概念就能打发过去的。无理数怎么个无理法,值得研究的地方多了。比如,a, b 都是有理数,形如 a+b√2 这样的数就足以构成代数,它们的加减乘除是闭合的,即结果仍是 a+b√2 的形式。 a+b√2当然是实数,可是它似乎已经有二元数的意思了,可以理解为由有理部和 (关于√2的) 无理部两部分拼接而成。

代数方程又逼迫我们注意到更多的数的怪异性质。考察一元n-次代数方程 a0xn+ a1xn-1+…+an-1x+an=0,其中系数a0, a1, a2 …an都是整数。这等价于方程 xn+ a1xn-1+…+an-1x+an=0,其中系数a1, a2 …an都是有理数。对于方程xn+ a1xn-1+…+an-1x+an=0,有些数可以是方程的解,这些数是代数数 (algebraic numbers)。与此相对,也有些数绝不可能是代数方程的解,它们是超越数(transcendental numbers)。1844年刘维尔 (Joseph Liouville,1809—1882) 首先证明了超越数的存在性,1873年厄米特 (Charles Hermite,1822—1901) 证明了自然对数e是超越数,1882年林德曼 (Ferdinand von Lindemann, 1852-1939) 证明了π是超越数。怪不得它们在数学中那么特立独行,我看着欧拉公式 e+1=0,就觉得e和π长相可疑。

让我们根据具体的方程研究一点细节。先考察 x2+bx+c=0,其形式解为 4969746a1fa11e2519f3d80b830b207f.png (不是20a5a9c8258dd5fcbe7a77d80e8b5cdf.png。记住了,代数方程及其根的表示里面就没有减号的事儿)。当 b2-4c<0 时,就有了负数开方的问题。一个数的平方为负,前所未有的事情,不明白,不接受。于是,我们宣称当b2-4c<0时,方程 x2+bx+c=0无解。

考察一般形式的(缺项)一元三次方程 x3+px+q=0,解的卡尔达诺公式为 aad99deb799307309319974bed61f806.png。当 9efcf67385b3848f8a8e352add956ae2.png 时,负数开根号的问题又浮现了。这一次却不能简单地一扔了之啦,因为当 c64a6af26591b6b436e47a77119a713a.png时三次方程可能依然有三个(实数) 根。卡尔达诺在《大术》一书中就给了一个例子。对于方程 x3-15x-4=0,按照公式应有一个解 307d34fb9e9703f37e79303db2cb8b13.png。此时似乎不能因为遇到负数开平方根就简单地判定该方程无解,它分明有解x=4 (另两个解为-2±√3) 。1560年,邦贝里 (Raphael Bombelli 1526-1572) 发现 ,只要不问负数开平方根的意义只管闷头往下算,就可以找到解x=4。在1572年出版的《代数》一书中,邦贝里建议为了求得三次方程的实根,至少可以暂时接受负数平方根的存在。定义 275f5bec8e3ceed4a5c7584517c734fa.png 为单位虚数,虚数是瑞士数学家欧拉1777年给取的名字,这样,代数方程一般解可写成a+ib的形式。形如a+ib的数被称为复数。若实数对应一条直线,虚数的几何意义是在与此直线垂直方向上的运动。复数a+ib是为平面而生的,用复数证明平面几何势如破竹。

复数可表示成矩阵的形式,a37448226755cdd21a815106e301c340.png,单位复数为 faf17e9874100b8038cce797f643e653.png,这是二维空间笛卡尔坐标系下的转动变换—复数乘积有表示二维平面内转动的功能!大约在1830年,爱尔兰数学家、天文学家哈密顿 (Sir William Rowan Hamilton, 1805-1865) 认为把复数写成一个实数加一个虚数的做法是有误导性的,复数应该是一种遵循具体算法的具有两个分量的数,写成 (a, b) 的样子即可。哈密顿称之为代数偶素 (algebraic couple),现在也叫二元数 (binarion) 。明白了二元数,即复数,可以表示二维平面内的转动,哈密顿想发明描述三维空间内转动的数,结果于1843年10月16日下午发明了四元数 (quaternion) 。四元数 q = a + bi + cj+ d,其中的三个单位虚数满足关系ij=k,jk=i,ki=j;ij=-ji,jk=-kj,ki=-ik;i2=j2=k2=ijk=-1。由四元数 q = a + bi + cj+ d,于是有了标量 (其中的a) 和矢量 bi+cj+dk 的说法,它们被用于电磁学中电场矢量、电磁势标量之类的表示,后来还发展出了矢量分析和线性代数。经典力学、量子力学和量子场论里的那些或真实或抽象的转动是用四元数表示的。少年们,念到研究生时好好学学这些内容吧,不过我建议你大学阶段最好学会了!注意,四元数不满足交换律,也就是说,一般地,q1×q2≠q2×q1

四元数可表示成形如 cc4cbee87c2b07cd802f02a2ae80bc39.png 的2×2矩阵的样子。注意 c8779553e7eb3755e1361d119381ebb9.png,也就是说表示四元数2×2的矩阵,矩阵值就是四元数的模平方。明白了这一点,以后就明白为什么广义相对论的公式里总有 cecf3ddb0754bdffcb25b7356db17aec.png出现了。四元数的矩阵表示可以理解为四元数构成一个四维线性空间,其四个基矢量分别为 14aab6f015493dbd426030f914642fba.png4852fec8f7b11acd38461ca857bdfa66.png2dea79437bcb8c4c6d6a6638e098b220.pngb7d8431f251ec7ab4e5362c632707cf0.png。这个四元数矢量部分表示和量子力学中的泡利矩阵 a399125684fb2ec9f3bbac2e2387059f.png51f2d0b70e654cc152349ca632cea411.pngf814f798ff297ccf3020c6081b6c9866.png只相差一个虚数因子-i,可看作是一回事儿。泡利矩阵是从对原子物理中遭遇的二值问题而由泡利构造的。四元数2×2矩阵的矢量部分可以用来描述电子的自旋,还能从中看到量子力学与相对论的统一。为此,你所需要的数学工具是群论,而群论竟然是个“只用到加减乘除中的乘法”的“简单”数学领域,吓不吓人?

受四元数的启发,1843年12月26日John Graves构造了八元数 (octonion)。八元数有一个实部,7个虚部。记八个单位八元数为{e0, e1, e2, e3, e4, e5, e6 , e7},任意一个八元数可表示为单位八元数的实线性组合,即 x=x0e0+x1e1+x2e2+x3e3+x4e4+x5e5+x6e6+x7e7。选定 e0=1,八元数的乘法有480种可能的定义。其中常见的一种可能是选择是e0e0=e0,e0ei=eie0=ei,eiej=-δije0ijkek,其中i, j, k=1,…,7,δij是Kronecker符号, εijk是反对称张量,对于ijk=123, 145, 176, 246, 257, 347, 365,εijk=1。八元数不愧是超复杂的数。八元数乘法既不满足交换律,也不满足结合律,也就是说,一般地,O1×O2≠O2×O1,O1×(O2×O3)≠(O1×O2)×O3

注意,是到了发明了八元数之后,我们才认真地考虑代数,即加法配上乘法,所应该表现出的规律的。对于某一类数A, 乘法的交换律指A1×A2=A2×A1, 乘法的结合律指 A1×(A2×A3)=(A1×A2)×A3,而分配率涉及乘法和加法,A1×(A2+A3)=A1×A2+A1×A3。实数 (一元数) 和复数 (二元数) 三者都满足,四元数不满足交换律,而八元数不满足交换律与结合律。当八元数破坏了交换律和结合律时,我们才认识到这些律的存在与重要性。

减法是加法的逆运算,除法是乘法的逆运算,连乘的逆运算带来开方的问题。除法对数的存在性要求太严格了,(一元的) 整数除以整数结果就不一定是整数。对于多元数,除法就更要命了。Hurwitz定理表明,只有1-, 2-, 4-, 8-元数有除法,即两数相除还是那种数。Hurwitz定理的证明要用到代数的深层次知识,笔者不懂,这里只说结论。证明过程最后都着落到整数N>1能否被数2(N-2)/2整除的问题。我们看到只有N=2, 4, 8 这三种情形满足这个要求。也就是说只有1-, 2-, 4-, 8-元数有除法代数。认识到可除代数只存在于2-, 4-, 8-元数能带来什么用处呢?我举一个小例子。两个二 (四、八) 元数的乘积还是二 (四、八) 元数,则两个二 (四、八) 元数模平方的乘积还是二 (四、八) 元数模平方乘积。若二 (四、八) 元数之实部及虚部都是整数,则得到结果任意二 (四、八) 个整数平方之和的乘积还是二 (四、八) 个整数平方之和,此为整数平方和恒等式 (参阅 曹则贤 《惊艳一击-数理史上的绝妙证明》,外研社,2019)。知道可除代数,这个整数平方和恒等式的证明就是个简单的演算,如果不知道可除代数,那要想证明可就够呛了。

知道了存在1-, 2-, 4-, 8-元数这四种可除数系,知道了加减乘除以及代数法则,知道一元二次、三次、四次方程的代数解公式以及五次以上方程没有有限根式解(及其证明),那个我们在初中时就自以为学过的称为代数的这门课,我们才算捱到了它的门口,还没正式入门呢——那门后有无限的绚丽风景。

本文中我介绍了一小部分我所知道的关于加减乘除的知识,而我能知道的全部也不过是加减乘除知识的冰山一角。少年,你还认为你会“加减乘除”吗?

谨以此文祝福那些拉开架势真地要学习的少年们。少年,不骄傲,也莫灰心,好好学习,青春无悔!

注释

[1] 竟然有关于自然数是否包括0的争论。考察一下0的概念以及0的符号到底经过了多少艰难才最终被引进来的,就知道0不是自然数。你教孩子数数或者查点物品的时候从0开始?数的性质,首先是个物理问题。 

本文经授权转载自《返朴》微信公众号


▼往期精彩回顾▼

1.不变变分问题

2.宇宙磁场3.拍照时为什么尽量别穿条纹的衣服?摩尔纹大揭秘!4. 轨道电子学向前一步: 自旋与轨道态的捆绑被打破5.基于金刚石量子传感的纳米磁成像及凝聚态物理应用(上)6. 基于金刚石量子传感的纳米磁成像及凝聚态物理应用(下) 7. 磁性纳米材料的生物医学应用8.走近天文之四:太阳系——熟悉又陌生的家园9. 谈书说人之一: 《理论物理学教程》是怎样写成的? 10. 杨振宁: 理论物理的工作是“猜”,而数学讲究的是“证”。

70da68b78791a8bb86081a8a4277df64.png

最后

以上就是忧虑帽子为你收集整理的c++复数加减乘除_少年,学点加减乘除呗?的全部内容,希望文章能够帮你解决c++复数加减乘除_少年,学点加减乘除呗?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部