高等代数有两部分内容: 多项式理论与线性代数. 这二者实际上也是代数学发展的两个方向. 多项式理论所占的比重并不大, 只有一章内容, 地位略显尴尬. 有的教材是把多项式部分放在全书的第一章, 也有一些教材是在研究矩阵理论时才提到多项式, 因为多项式在其中起到关键作用. 我个人倾向于把多项式放在第一章.首先, 多项式和线性代数是平行的两个理论, 自成体系, 分开来从逻辑上看没有大问题. 其次, 多项式在线性代数中的很多部分有用, 比如行列式本身就是一个(多元)多项式, 计算行列式时经常会用到多项式的性质; 多项式的全体及其子集是线性空间的重要例子; 多项式的求导提供了一个很特别的线性变换, 而线性变换或矩阵的研究离不开特征多项式, 等等. 因此, 把短小精悍的多项式理论先讲清楚对后面的线性代数理论是由很大的好处的. 第三, 多项式是解决前文中提到的数域问题的关键, 而它自身的特点与整数理论如出一辙, 这种相似性即方便了初学者的理解, 也可以在这个类比的过程中提升他们把具体问题抽象化的逻辑思维能力.3 的故事谈到整数, 先说点题外话(以下几个故事纯属凑字数). 人类在日常生活中不可避免地遇到计数问题, 自然数就顺理成章地出现了. 对于现在的学龄前儿童来说, 数数很容易, 毕竟一个三、四岁的孩子如果数数有困难的话, 他在起跑线上就落下了好几个身位了. 不过, 三、四十年前, 一个五、六岁的孩子能从 1 数到 100 就非常难得了. 如果再往前倒腾几百年, 一个成年人能数到 3 就不错了. 比如, 伽莫夫的名著《从一到无穷大》是这样开篇的:

有这么一个故事, 说的是两个匈牙利贵族决定做一次数数游戏——谁说出的数字大谁赢.

“好, ”一个贵族说, “你先说吧! ”

另一个绞尽脑汁想了好几分钟, 最后说出了他所想到的最大数字:“3”.

现在轮到第一个动脑筋了. 苦思冥想了一刻钟以后, 他表示弃权说:“你赢啦! ”

无独有偶, 在《论语 · 公冶长》中有一段名言:

季文子三思而后行. 子闻之, 曰: “再, 斯可以. ”

这里的“三”理解为“多”似乎合理一些. 而老子在《道德经》中写道: “道生一, 一生二, 二生三, 三生万物”. 这些“三”大概有异曲同工之妙.

1729 的故事自然数或整数陆续发展出了各种运算, 这就有了很多深刻的发现. 说两个关于 1729 的故事. 第一个故事的主角是美国物理学家 R. Feynman (费曼,1918–1988), 他在自己那本广受欢迎的自传《别闹了, 费曼先生》中叙述了一件小事. 一个日本算盘商人, 他与 Feynman 比试用算盘作作四则运算, 结果基本是平手. 算盘商人一时兴起要比试求 1729.03 的立方根. 这正中 Feynman 的的下怀, 他立刻在纸上写下了这个立方根的整数部分 12, 想了几秒钟又把这个根精确到 12.002, 而这个时候日本商人才得到 12. 不得不说 Feynman 的运气相当好, 因为他知道 .因此, 1729.03 的立方根只会比 12 多一点, 用一点点数学技巧他很容易得到小数点后面的几位数字.Feynman 只注意到, 而印度数学家 Ramanujan(拉马努金, 1887–1920) 的理解更深刻. 有一次, 英国数学家 G. H. Hardy (哈代, 1877–1947)去医院探望 Ramanujan. 由于乘坐的出租车的车牌号是 1729, Hardy 有点不高兴, 觉得这不是一个好数字. Ramanujan 却马上告诉他:

并且它是可以用两种不同方式写成两个正整数的三次方和的最小数! Ramanujan对数字的敏感是超乎常人的想象的!整数与多项式言归正传. 说来挺有意思:刚上小学时, 孩子们学习整数的加、减、乘、除; 进入大学后, 学生们首先遇到的还是四则运算, 只是对象变成了多项式. 很有趣的螺旋, 能否上升就看个人造化了.我们来做一个对比, 看看如下的这个表格:

基本问题

做这个对比是必要的, 因为我们很容易看出来整数与一元多项式就像孪生兄弟一样, 它们的运算、性质、研究重点都一样. 当然, 小学时对待整数运算的学习, 只是记住结论会用就好, 并不需要也不可能了解其中深刻的内涵; 然而大学数学就不是这样了, 我们需要知其然, 更要知其所以然. 比如, 一些看起来显然的结论也需要严格验证, 这会成为数学课程中的常规操作.问题1 验证多项式加法和乘法的交换率、结合律、分配律和消去律.上述验证不难. 进一步, 减法和除法并不能独立存在, 它们要分别依赖于加法和乘法. 本质上说, 减去一个数等于加上这个数的相反数; 除以一个数等于乘以这个数的倒数. 这里又有一个共性: 加法中的 0 与乘法中的 1 有完全相同的地位, 相反数与倒数也有相同的地位. 不妨做做如下练习体会一下, 课堂实验的结果略有点意外: 好多学生一时反应不过来.问题2 实数上有加、减运算, 正实数集上有乘、除运算, 试建立这两者之间的一一对应, 使得两者的运算也相互转化.整数和多项式下一个共同点是带余除法. 不过, 可能有一点出乎意料的是, 多项式的带余除法比整数的容易, 因为作整数的带余除法时我们需要试商, 比如 951除以 119 的商是 8 还是 7, 一般人一眼看不出来, 而在多项式情形就省事多了. 此外, 把带余除法从自然数推广到整数的时候, 还有一点麻烦, 比如 −5 除以 −4 的商是 1 还是 −2 好一点? 实际上都可以, 因为我们只能要求余数的绝对值小于除数的绝对值, 要求余数为正并没有什么道理. 在这一点上, 多项式情形的结论又好一些.问题 3, 则存在唯一的使得

这个证明不难, 值得注意的是区别一下第一和第二数学归纳法的使用. 带余除法虽然简单, 但是非常有用. 在抽象的环论里面, 有一个特别的数学对象——Euclid 环, 这是一类能做带余除法的数学对象.

因式分解

带余除法中的特殊情形是整除, 由此有因数与倍数的概念. 把一个正整数分解成比它小的因数的乘积就是所谓的因数分解. 如果一个大于 1 的正整数能分解成两个更小的因数的乘积, 我们可以继续考虑它的两个因数的分解. 这个过程有限步后就会停止了, 这时候得到了每一个因数都不能再分解, 就是所谓的素数 (中小学里称为质数), 正整数的这样的分解就是素因数分解. 于是我们有问题4 (算术基本定理) 任何大于 1 的正整数 f 都可以唯一地分解为素数的乘积其中,  都是素数.这个结论我们从小学起就一直在使用, 但是一直没有机会证明. 陈景润当年掀起了全国人民对数论的狂热, 但是初等数论一直没有进入中小学课堂, 这着实有点奇怪. 我尝试把它留做习题, 让学生们在国庆长假期间完成, 完成效果并不理想: 不少学生只是找参考资料完成了作业, 其中的原因并没有想清楚.我让他们做这个作业的目的是为了让他们熟悉一下这个过程, 因为同样的证明可以证明多项式的因式分解的存在唯一性定理.问题5, 则  可以分解为  中不可约多项式的积

如果  还有另一种分解

则 s = t, 且经过适当排列后有

我们只考虑算术基本定理的证明, 多项式情形的证明是一样的. 存在性并不困难. 对于唯一性, 有一个思路是用无穷递降法.问题 6 设 f(x) 的因式分解不唯一, 则可以构造另一个次数更小的多项式, 其因式分解也不唯一.不过, 我更喜欢另一个思路, 因为这里包含更多有趣的东西. 设

为两种因式分解(整数与多项式都可以). 注意到, “自然应该存在”某个(不妨设为) 使得 . 又由于都是不可约的, 于是有. 利用消去律可得

利用归纳法都可以得到因式分解的唯一性.

不过, 上述的证明是有一个大的漏洞: 其中的“自然应该存在”是想当然的, 不少学生觉得它一定是对的, 但又说不出理由! 这个结论最早是由 Euclid 证明的.

Euclid 引理

Euclid 在《几何原本》中得到了如下结论.问题7 设 p 为素数, 则对任意 a,b ∈ N, p|ab 蕴含着 p|a 或 p|b.需要指出的是, 上述命题的逆命题也是对的, 也就是这个结论是素数的等价定义. 当然, 换成不可约多项式也是对的. Euclid 的证明比较复杂, 利用如下命题就简单多了.问题8 设 a,b 为正整数, d = (a,b) 为它们的最大公约数, 则存在整数 x,y 使得 d = ax + by.这个命题被称为 Bézout 定理, 它实际上是由 Bézout (裴蜀, 1730–1783) 的同胞 Claude Gaspard Bachet de Méziriac (1581–1638) 证明的, Bézout 证明的是多项式情形.问题9 记 f(x),g(x) ∈ F[x] 的最大公因式为 (f(x),g(x)), 则存在 u(x),v(x) ∈F[x] 使得u(x)f(x) + v(x)g(x) = (f(x),g(x)).

特别地, f(x),g(x) 互素当且仅当存在 u(x),v(x) ∈ F[x] 使得

u(x)f(x) + v(x)g(x) = 1.

的证明的关键是反复使用带余除法, 即辗转相除法. 辗转相除法的过程并不难懂, 很多高等代数书上都能找到, 在此不赘述. 值得注意的是, Bézout 定理的结论启发我们换一种思路来证明.问题10 考虑集合

{u(x)f(x) + v(x)g(x)|u(x),v(x) ∈ F[x]},

证明其中次数最小的首一多项式就是

(f(x),g(x)).

这个想法很重要, 不过证明并不难, 还是用带余除法. 当然, 这个思路实际上并没有直接求出最大公因式, 不过它的思想很有用, 是抽象代数中理想这一概念的具体化, 而辗转相除法的好处是告诉我们求最大公因式的步骤, 两者各有优劣.

大整数的代数运算_高等代数教学笔记2:多项式I相关推荐

  1. java大整数的加减乘除_关于大整数的加减乘除求余运算 java

    自己用java 实现了大字符串整数的加减乘除和求余运算, 加减法的算法是模拟手工笔算的计算过程, 除法就是从最高位不停的减操作, 乘法的算法 :遍历一个数的各个位数以及他所在位置,另一个数根据这个数的 ...

  2. stm32 整数加法循环时间_【教学设计】小数加法教学设计

    小数加法教学设计 刘秀锦 舞钢市特殊教育学校 教材分析 本节课是第四单元"小数加减法"的第一课时,小数加减法是以整数加减法为基础进行教学的,本节课走踏实了,后边的知识才能顺利的进行 ...

  3. 算法笔记之:大整数的四则运算

    带来<算法笔记>第五章: 大整数的四则运算 #include<cstdio> #include<cstring>struct bign{int d[1000];in ...

  4. python整数池_【Python】Python中神奇的小整数对象池和大整数对象池

    小整数对象池 整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间. Python 对小整数的定义是 [-5, 256] 这些整数对象是提前建立 ...

  5. 大整数乘法c语言代码_大整数乘法

    大整数乘法和我们小学学过的乘法公式一样(如下图),就是按位相乘,两个数中的每一位彼此相乘,然后将相同列的结果加起来,最后统一处理进位即可. #include <iostream> #inc ...

  6. 《Python Cookbook 3rd》笔记(3.5):字节到大整数的打包与解包

    字节到大整数的打包与解包 问题 你有一个字节字符串并想将它解压成一个整数.或者,你需要将一个大整数转换为一个字节字符串. 解法 假设你的程序需要处理一个拥有 128 位长的 16 个元素的字节字符串. ...

  7. python整数池_对Python中小整数对象池和大整数对象池的使用详解

    1. 小整数对象池 整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间. Python 对小整数的定义是 [-5, 256] 这些整数对象是提 ...

  8. c语言任意两个整数相减_大整数加减运算的C语言实现

    大整数加减运算的 C 语言实现 一 . 问题提出培训老师给出一个题目:用 C 语言实现一 个大整数计算器.初步要求支持大整数的加.减运算,例如 8888888888888+1112=888888889 ...

  9. Django Web框架教学笔记-1

    <Django Web框架教学笔记> 目录 文章目录 <Django Web框架教学笔记> 目录 Django框架的介绍 Django的安装 Django框架开发 创建项目的指 ...

  10. (邱维声)高等代数课程笔记:矩阵的加法、数量乘法与乘法

    (邱维声)高等代数课程笔记:矩阵的加法,数量乘法与乘法 \quad 前面已经看到,矩阵的初等行变换.矩阵的秩 在线性方程组理论中起着非常重要的作用,因此,系统地研究一下矩阵是非常有必要的. \quad ...

最新文章

  1. 那么辛苦努力的工作,却换来了一身的不是
  2. 算法导论中求解时间复杂度的三种方法
  3. OpenCV cv :: UMat与DirectX9ex曲面的互操作性的实例(附完整代码)
  4. textarea里的回车和换行符与json里的回车和换行符
  5. iOS各种小理论知识
  6. 开始学习C#.Net
  7. 获取OlapConnection连接
  8. StanfordDB class自学笔记 (15) Recursion
  9. 3.MNIST数据集分类
  10. 单片机c语言*乘法,单片机c语言教程:运算符和表达式(位运算符)
  11. Visio里如何画树状图?
  12. MsXml创建和解析XML示例
  13. 【PC工具】win10关闭自带杀毒软件,win10关闭安全软件方法
  14. 第五章(第四节)论路由器重置
  15. 鸡兔同笼python程序怎么写_【鸡】鸡的功效_鸡图片_食材百科_美食杰
  16. 首页布局跟小程序如何配置Iconfont—小程序入门与实战(七)
  17. pve 不订阅更新_这款曾霸榜TapTap的游戏,创造了不一样的自走棋玩法
  18. 终于有大lao把“计算机底层原理“全部总结出来了
  19. Learning Docker 学习Docker Lynda课程中文字幕
  20. 【深度学习】实验1答案:Softmax实现手写数字识别

热门文章

  1. 无锡php公司,start.php
  2. 未能加载文件或程序集“AjaxControlToolkit”或它的某一个依赖项
  3. Wyn Enterprise 核心功能:易用至极的自助式BI和数据分析工具
  4. springCloud Finchley 实战入门(基于springBoot 2.0.3)【五 Hystrix 服务容错保护】
  5. 原生JS实现一个无缝轮播图插件(支持vue)
  6. 第 14 章 SMS
  7. Windows10下安装原生TensorFlow GPU版
  8. 如何从zabbix数据库中获取每日流量最大值
  9. ruby array 额
  10. 端对端场景测试的设计和改进