设计一个程序实现两个任意长的整数的求和运算_自然数集,整数集,有理数集等都有字母表示,为什么无理数集没有...

在网上翻到一个非常有意思的问题:

38b4b28caeeb1ca2df10debaaa35de6b.png

这个问题乍看起来无厘头,但实际上是个非常深刻的问题,涉及到抽象代数(abstract algebra)的一些基本概念,因此我打算写篇文章来详细阐述一下。

人类的数学从数数开始,最早诞生的概念是自然数(natrual number)。后来随着数学应用范围的扩大,又产生了新类型的数。

初中时我们对数的体系做了详细地介绍

e69102d8c5cd7fbadf533e63bf08e103.png

到了高中我们又学了集合的概念,从集合的角度来研究数。为了叙述的方面,我们把由不同类型的数组成的集合用一个字母来表示,我们学过的有如下几个:

  • 自然数集:N
  • 整数集:Z
  • 有理数集:Q
  • 实数集:R
  • 复数集:C

相信很多小伙伴在这里也会碰到同这位网友一样的疑问:无理数(irrational number)也是很重要的数的类型,为什么它们的集合没有字母表示呢?是书上忘了讲,还是说数学家懒得起名字?

其实,无理数集没有用字母表示是有其中的道理的,要弄清楚这个道理,就得先弄清楚三个基本概念:集合(set),二元运算(binary operation),封闭(closed)。

基本概念

  • 集合

集合这个概念我们已经很清楚了,指的就是具有某些特定性质的元素做成的集体。当然关于集合的精确定义还有很多需要讨论,但是理解到这个层次也就足够了。

  • 二元运算

二元运算我们其实也已经很熟悉了,但是之前没有给它做出过精确的定义。用不太正式的语言来叙述,一个二元运算就是一种把两个数变成一个数的对应法则。比如加法就是一个二元运算,因为他把1和1变成2,把2和3变成5等等。同样道理,四则运算加减乘除都是二元运算。

不过我们一般把减法运算看作是加法运算的逆运算,把除法运算看作是乘法运算的逆运算,因此最基本的二元运算只有两种。

8da3539c6baea23557a66140f52a8105.png

于是有人就会问了,既然有二元运算,那有没有一元运算呢?当然是有的,所谓的一元运算,无非就是把一个数变成另一个数呗,我们常见的,比如对数运算,开方运算,都是一元运算。但其实,所谓的一元运算,就相当于我们学过的函数。

同样道理还会有三元运算,四元运算,n元运算等等,我们不再做过多讨论。

09ea369139622315596e0d346d6f1ece.png
  • 封闭

“封闭”其实是理解本文最核心的一个概念。

封闭是建立在集合与二元运算的概念的基础之上的。

对于某个数集和某种运算,如果从该数集里面任意挑两个数,做二元运算所得到的结果仍然是这个集合中的数,就说该数集对于这个二元运算是封闭的。

比如举个最简单的例子,自然数集对加法就是封闭的,因为任意两个自然数相加的结果,还是一个自然数。而自然数集对减法运算不封闭,比如我随便就可以举出两个数来2和3,他俩都是自然数,但是2-3=-1,它就不是自然数了。

5268152ef73af2ddb889a2153a42532c.png

封闭

要回答本文提出的问题,就得从封闭这个概念来着手。

我们先来分析一下已知的集合对四则运算的封闭性。

  • 自然数集N,对于加法运算和乘法运算都是封闭的,但是对于减法运算和除法运算不封闭。
  • 整数集Z,对于加法运算,减法运算,乘法运算都是封闭的,但是对于除法运算不封闭。
  • 有理数集Q,对于四则运算都是封闭的。
  • 实数集R,对于四则运算都是封闭的。
  • 复数集C,对于四则运算都是封闭的。

这里我想特别强调一下有理数集,有理数集对加减乘除4则运算都封闭,不是一件很明显的事情,我们需要有严格的证明。

所谓有理数就是可以写成两个整数之比的数,所以我们假设有两个有理数b1/a1,b2/a2,其中a1、b1、a2、b2都是整数,考察一下它们做四则运算的结果:

18dd8da8e009e11f67f3d61d0e110406.png

可以看出,四个运算结果依然都还是有理数,这就证明了有理数集对四则运算都是封闭的。

这里我想说的是,数学家们已经证明了:有理数集是对加减乘除四则运算都封闭的最小的数集。意思就是说任何比有理数还要小的集合,哪怕只比有理数集少一个数,就不再对加减乘除四则运算封闭了。

f1c5f3f0ecfa283c249e36a1afa5b1f6.png

在抽象代数学中,我们把对加减乘除四则运算都封闭的集合称为一个数域(number field),可以看出,实数集和复数集都是数域。而我们上面提到的结论就是:有理数集是最小的数域。换句话说,任何数域都包含有理数集作为它的子集。

无理数集

分析完这些,我们就可以来看看无理数集了。我们会发现,无理数及对四则运算都不封闭。我们很容易就能举出例子来:

  • 对加法:√2和-√2都是无理数,但是加在一起等于0,0不是无理数。
  • 对减法:√2和-√2的例子可以看成是√2-√2,结果也是0。
  • 对乘法:√2×√2,结果是2,2不是无理数。
  • 对除法:√2÷√2,结果是1,1不是无理数。
0bf6cb310c0bbbdaf90995eb653e156a.png

原来无理数集是个如此糟糕的集合!这就是我们不给它用字母表示的原因。

在现代代数学中,数学家们主要关注的就是集合及集合中元素的运算结构,产生了群(group),环(ring),域(field)等一系列概念。

一个集合上某个运算是封闭的,那么研究它才有意义,会有很多很美好的性质。但是如果运算不封闭,那么研究起来就会杂乱无章,并没有太大意义。

49db367b4b0ac40a21477198e6198357.png

对于前面五个集合,都存在至少一种运算使其封闭,我们就利用这种封闭性来得出不少新的性质,解决了很多数学问题,甚至构造出更多更复杂的结合。数学家们经常使用这五个集合,为了叙述上的方便,就拿五个字母来代替他们。

但是对于无理数集合,因为它对四则运算都不封闭,因此无法得到像前面五个集合那样丰富的性质,使用起来也就不如它们频繁,所以我们就没有必要拿一个单独的字母来命名它。

结束语

讲到这里就不得不稍微提一下近世代数(modern algebra)的发展。

近世代数中最主要的概念——群,思想起源于19世纪法国数学天才伽罗瓦(Galois,1811~1832)。伽罗瓦利用群论的方法,彻底解决了五次及以上方程根式解的问题,是数学发展史上开天辟地的事情。我这位旷世数学天才却因为意外而英年早逝,年仅21岁,是人类数学史上的一大憾事。

a05501380d531fdf453bdbf75b0f25d9.png

不过,我们现在在教科书上学到的代数学之所以长这个样子,则主要归功于20世纪德国女数学家,被誉为“现代代数之母”艾米·诺特(Emmy Noether,1882~1935)。诺特是数学史上毫无争议的最伟大的女数学家,他和他的学生所形成的“诺特学派”,彻底改变了代数学的全貌。

6ef8e7144e6da7e0ef766404ab936c17.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498892.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php7 str split,PHP7.4新特性预览

虽然PHP 7.4还未发布,但是RFC已经确定了该版本的一些新性。这个版本的改动有点多,有很多实用性功能。发布日期可能在2019年12月左右,但尚待确认。让我们看看有那些地方的改动。短闭包 RFC属性类型定义 RFCNull Coalescing Assignment Operato…

python实现中撤销上一步的代码mac_一个“MacBook”新手的Python“笨办法”自学之旅 #第六章:常用的简易Python命令、符号、代码、格式化字符串...

第六章:常用的简易Python命令、符号、代码、字符串《“笨办法”学Python》这本书中,确实用了较多篇幅来介绍Python的一些常用简单的命令、符号、代码和字符串等,对于像我这样的自学新手,真的是非常棒,因为它们可以帮我…

php strpo函数,php strpos函数有什么用

php strpos函数有什么用?定义和用法strpos() f函数查找字符串在另一字符串中第一次出现的位置(区分大小写)。注释:strpos() 函数是区分大小写的。注释:该函数是二进制安全的。相关函数:strrpos() - 查找字符串在另一字符串中最后一…

oracle 客户端_【数据库 常见术语1】 客户端,服务端

这个系列会介绍并回顾在学习和工作中常碰到的一些名词,以及它们的意思。客户端,服务端(以Oracle数据库为例)**************************************************************************************【我的理解】 打个比喻&…

matlab调用ansys需要安装mpi,Ansys 14中Fluent并行计算MPI全程详解

14版中的各mpi安装无需手动设置系统环境变量,此处以13版的intel mpi安装为例进行说明。NOTE: When the installation is complete, add %I_MPI_ROOT%em64tin or %I_MPI_ROOT%ia32in to your System PATH environment variable.If both HP-MPI and Intel-MPI are ins…

多个线程访问统一对象的不同方法_分析| 你未必真的了解线程安全,别骗自己,来看下怎么实现线程安全...

世界那么大,谢谢你来看我!!关注我你就是个网络、电脑、手机小达人什么是进程?电脑中时会有很多单独运行的程序,每个程序有一个独立的进程,而进程之间是相互独立存在的。比如下图中的QQ、酷狗播放器、电脑管…

php设置mysql查询编码,php连接mysql时怎么设置编码方式

php连接mysql时怎么设置编码方式php连接mysql数据库时,也就是在mysql_connect()语句之后添加“mysql_query("set names utf8");”语句来设置编码方式。注意:是utf8,不是utf-8;网页字符集也最好选用utf-8。在PHP连接数据…

pandas to_csv参数详解_【Python基础】Pandas数据可视化原来也这么厉害

一、可视化概述在Python中,常见的数据可视化库有3个:matplotlib:最常用的库,可以算作可视化的必备技能库,比较底层,api多,学起来不太容易。seaborn:是建构于matplotlib基础上,能满足…

zend studio php 5.5,PHP - 下载 - Zend Studio 5.5

PHP - 下载 - Zend Studio 5.5[Zend Studio 5.5 - 网站]http://www.zend.com/products/zend_studio[PHP - 关键词] php[PHP - 相关论坛] http://php.board.newsmth.net/ http://bbs.pku.edu.cn/, homepage看版 http://forum.csdn.net/SList/PHP/[PHP - 下载] AppServ 2.5.9, ht…

以下哪个不是有效的java变量名,Java程序设计-中国大学mooc-题库零氪

第1周 计算第1周编程题1、温度转换第2周 判断2.x 第2周小测验随堂测验1、写出以下代码段的执行结果: int num34, max30; if ( num > max*2 ) System.out.println("zhang"); System.out.println("huang"); System.out.println("zhu"…

python自动化工具哪个好用_微软最强 Python 自动化工具开源了!不用写一行代码!...

本文转自"AirPython"1. 前言最近,微软开源了一款非常强大的 Python 自动化依赖库:playwright-python它支持主流的浏览器,包含:Chrome、Firefox、Safari、Microsoft Edge 等,同时支持以无头模式、有头模式运行…

oracle数据库重建em,oracle 11g em重建报唯一约束错误解决方法

oracle 11g em重建报唯一约束错误解决方法更新时间:2012年11月27日 15:07:33 作者:今天在手工配置Oracle11g的EM时总是报如下错误,也没有找到解决办法,以下是我的解决过程,希望可以帮助你们今天在手工配置Oracle11g的EM时总是报如下错误&am…

爬虫 404 try_Python爬虫MOOC笔记

写在前面的小于碎碎念最近在学习Python爬虫内容,其实很多知识在网上搜索一下都能查到,但是作为自己的一种学习记录,也是回顾与复习呀。这种东西真的变化超级快,以前可以直接爬取的内容,现在很多网站都增加了反爬机制&a…

oracle里的concat,oracle 中的 CONCAT,substring ,MINUS 用法

有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:MySQL: CONCAT()Oracle: CONCAT(), ||SQL Server: CONCAT() 的语法如下:CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3&#xff…

python调用c++_python高性能编程之Cython篇 第一章

第一节 cython的潜能•Cython是一种编程语言,它将Python与C和C 的静态类型系统相结合。•Cython是一个将Cython源代码转换为高效的C或C 源代码的编译器。然后可以将此源代码编译为Python扩展模块或独立可执行文件。Cython的强大功能来自它结合了Python和C的方式&…

oracle获取序列并赋值,Oracle中序列的使用

数据库设计的三大范式第一条就是独立的表结构中必须有唯一主键来标识表中数据.在以往微软的SQL Server(duo版本)平台上.手动编码实现表中主键.并设定为自增列是极其简单.编码如下:typeidintnotnullprimarykeyidentity(1,1),在Oracle 10G中关于序列(Sequence)的使用.(A)Sequence…

中文python笔记_python 中文编码笔记

最近碰了很多钉子。。。不得不说,python2.6相较于之前发布的版本,就编码方面来说,有明显的进步。本机使用的是python2.6,同样的代码根本没有遇到问题。到了服务器上部署时,一台服务器的python2.5和另一台服务器的pytho…

oracle 如何 更改 ref cursor 结果集,oracle – 如何从anther调用一个存储过程并修改返回的refcursor?...

不直接,没有.SYS_REFCURSOR是指向结果的指针 – 您唯一能做的就是获取数据.您无法修改结果集.P_PROC2可以从SYS_REFCURSOR获取数据,发出查询以从其他表中获取其他数据,并将某些内容返回给调用者.那时,我倾向于倾向于将P_PROC2转换为流水线表函数.但是您可以返回包含修改后数据的…

python读取usb扫码枪数据_vue扫码枪input接收数据

1.使用场景vue 项目, 需要用扫码枪完成获取二维码中内容并进行处理的功能, 扫码枪就是普通那种,先找到一个有焦点的input,然后扫码枪工作,将扫描到的信息录入到input中,必须要有焦点。打开modal&#xff0c…

oracle不空顺序输出,Oracle应用笔记

简单整理自己的oracle笔记。1、采用excel表格中的数据直接粘贴数据库记录中,默认会在后面加一个空格“”,操作完成后一定要记得对空格匹配然后修改一下。2、查询数据库里的所有表结构,采用select * from dba_tables(sys登录);查看…