为什么不能除以零?

全世界有3.14 % 的人已经关注了

数据与算法之美


如果你问苹果手机上的Siri,“零除以零等于多少”,它会显示:


640?wx_fmt=jpeg


但是,英文版的Siri还会用语音说这一段话:


“假如你有0块饼干,要分给0个朋友,每个人能分到几块?你看,这个问题没有任何意义吧?甜饼怪会难过,因为没有饼干吃,而你也会难过,因为你一个朋友都没有。”


(中文版也会,但言辞就没那么伤人了……)


640?wx_fmt=png


抛开这个伤人的回答不论(有朋友谁特么会跟你聊天啊喂!),除以零确实是个困扰很多人的问题。


十除以二等于五,六除以三等于二,一除以零是多少?小学数学就会告诉你,答案是不能除。但是为什么?零也是个数字,它到底哪里特殊了?


 小学篇 


小学算术里,这个问题很简单。那时我们把除法定义成“把一个东西分成几份”,分成一二三四五六七份都很容易想象,但是你要怎么把10个饼干分给0个人呢?想象不出来嘛!所以不能除。


敏锐的同学可能会想到,要是0个饼干分给0个人的话,本来无一物,好像就没关系了。但既然无物也无人,每个人分得多少都是可能的呀,根本无法给出一个单一确定的数值。


这结论没错,但这都是凭直觉而得到的东西。你想象不出来,不一定意味着它没有。远古时代的数学是建立在直觉上的,买菜是够用了,但要进一步发展,就必须要有定义和证明——所以,我们上了中学。


 初中篇 


现在我们开始接触最最基本的代数学——也就是解方程。我们发现,除法和乘法互为逆运算,所以问

1 / 0 = ?

就等于是解方程

0 * x = 1


好了,按照定义,0乘以任何数都是0,不可能等于1,所以满足x的数字不存在,所以不能除。


同样,如果问

0 / 0 = ?

就等于是解方程

0 * x = 0


同理,任何数字都可以满足x,所以也不能除——无法确定一个单一的答案。


 高中篇 


等到接触了基本的形式逻辑,我们又会发现另一种证明方式:反证法。


一堆真的表述,不能推出一个假的表述,所以如果我们用“能够正常地除以零”加上别的一堆真表述,最后推出假的来,那只能说明“除以零”这件事情不成立了。


所以,已知

0 * 1 = 0  

0 * 2 = 0  

推出

 0 * 1 = 0 * 2


两边同时除以零,得到

 ( 0 / 0 ) * 1 = ( 0 / 0 ) * 2


化简得到 1 = 2。这显然是错的啦。


那么,问题解决了吧!其实还没有。想想另一个问题:-1的平方根是多少?


你可能会说,-1不能开平方根,因为所有数的平方都是非负的。但是这说的是实数,我要是增加一个定义呢?定义i^2=-1,这就创造出了虚数,于是-1也能开平方根了。


那么,为何不能定义一个“新”的数,让 1 / 0 也等于它,并为这个数设立一套运算法则呢?这就得去大学里回答了。


 大一篇 


刚学微积分课程就会立刻接触到∞这个符号。咦,这不就是“无限”嘛。我们都学了极限的概念了,那么我令b趋向于0,然后把a/b的极限定义为无穷,不行吗?


这就立刻遇到一个问题,它的左极限和右极限不一样啊。b是从负的那头靠近0,还是正的那头?这一个是越来越负,一个是越来越正,碰不到一起去。这样的极限是没法定义的。


因此,微积分课程里会反复说,虽然用到了∞这个符号,但是这只是代表一个趋势,绝对不是一个真正的数,不可参与运算。


 大二篇 


那么吸取教训,我不用现成符号了,我直接定义  1 / 0  = w,w是个“无限大”的数,不碰什么极限,你总没话说了吧!


然而,定义不是说来就来的,你虽然可以随便定义东西,但定义完了如果和现有的其他系统矛盾,那就不能用,或者很不好用。


而我们面对w立刻就遇到了问题。首先,w要怎么放入基本的加减乘除体系里?1 + w等于多少?w - w等于多少?如果你造了一个数,却连加减乘除都不能做,那就不是很有用对吧。


比如直觉上,1 + w 应该等于 w,它都无限了嘛! 而 w - w 则等于0,自己减自己嘛!


但这样立刻会和加法里极其重要的“结合律”产生矛盾: 1 + ( w - w ) = 1 + 0 = 1,可是( 1 + w ) - w = w - w = 0。结合律是加法里非常基本的东西,为了一个w,连结合律都不要了,这成本有点大——不光是结合律本身,多少数学定理证明过程中不自觉都用了它,扔了它就都得重来,建立新体系。新体系不是不能建,但是费心费力又(暂时)无卵用,所以大家还是在老实用旧的——而旧的里面,为了保住结合律,就不能这么玩。


欢迎读者们发挥自己的想象力,尝试为 w 给出运算方式。但是你会发现,无论怎么规定w和别的数字之间的关系,只要你还坚持 1 / 0 = w,你就没法让它和你从小学习的基本数学不矛盾。还是那句话,你可以另立门户,在w的基础上建立起你的新数学,但它和大部分传统数学是不相容的,而且肯定会非常不好用,所以我们用了一个不能除以零的体系是非常合理的。


 大三篇 


你可能会提出反对:有那么多的定义方式,我都试过?要是没试过,我怎么知道不会某一天冒出来一个能够自洽的办法?


“新发现推翻旧结论”这种事情,在生物里可以有,化学里可以有,物理里可以有,唯独数学里没有。因为数学建立在逻辑上,个案有例外,逻辑没有例外。当然我们的数学还没有完成最终公理化,还要面对哥德尔的幽灵,但至少在这个例子里,如果w是一个真正的数,那它就违反了一些非常重要的公理,而这些公理的地位可是非常之深。解析直觉,推荐阅读《数学思考法》


比如有一组基本的公理叫“皮亚诺公理”,其中有一条说,每一个确定的自然数都有一个确定的后继,后继也是自然数;另一条说,自然数 b=c,当且仅当 b 的后继 =c 的后继。


那w是谁的后继呢——或者说,谁加上1能得到 w 呢?显然所有其他的数字都已经有了自己的后继,w 在其中没有位置,没有任何其他的数加上1能成为 w。那么就只能是1+w=w了,可那就直接和第二句话矛盾。而没有皮亚诺公理,整个自然数的体系都不能成立。


这里假定w是自然数。其他情况会略微复杂一些,但无论如何,类似的事情发生在w的各种定义里。如果你想把 w 当成一个数,那就没法和我们现有的实数兼容。所以我们在几乎所有场合下都只能宣布,不能除以 0。


 大四以上篇 


既然我们之前说了个“几乎”,那就是有例外的——在个别奇葩场合下,可以。


比如有一个东西叫做“复无穷”,它是扩充复平面上的一个点,真的是有定义的一个点。在这个特殊的规则下你可以写下 1 / 0 = ∞ 这样一个表达式。这么做的原因就说来话长了,但它不是平常意义上的运算——比如你不能把0拿回来,不能写 1 = 0 * ∞。


另外,“无穷”二字在一些别的场合下是可以当成一个“东西”去对待的。比如当你衡量一个集合的大小的时候,它可以是无穷大的。但这就有很多种不同的无穷大了——自然数是无穷多的,有理数是无穷多的,实数也是无穷多的,可是奇数和偶数和正整数和负整数和自然数和有理数都一样多,而实数却比它们都多!同样是无穷,有的无穷比别的无穷更无穷。但这就是另一个话题了,打住。学会像数学家一样思考,推荐阅读《数学思维导论》。


 总结篇 


所以,当我们说不能除以零的时候,理由……竟然出乎意料地充足。有许多直觉在数学里被推翻了,但是这一条没有。我们有种种数学上的方式去证明它无法成立的原因,虽然也许听起来不如Siri的回答那么心暖(或者心寒),但这些理性的愉悦也是一种美丽,对吧?


640?wx_fmt=png精品课程推荐:

640?wx_fmt=png

640?wx_fmt=png

选购数学科普正版读物

严选“数学思维好物”

送给孩子的益智礼物   |   办公室神器

算法工程师成长阅读   |   居家高科技

理工科男女实用型礼物精选   

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=png

640?wx_fmt=jpeg


数据与算法之美

用数据解决不可能


640?wx_fmt=jpeg


长按扫码关注


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

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

相关文章

设计模式之Builder

2019独角兽企业重金招聘Python工程师标准>>> Builder模式定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们…

linux kvm系统,linux kvm虚拟机安装以及主机配置支持有哪些?如何远程控制linux kvm系统?...

服务器安装kvm的时候,如果没有安装桌面(一般不会安装,节省资源),就需要使用命令去创建虚拟机。要支持 KVM,Intel CPU需要 vmx 或者 AMD CPU 需要svm 扩展。在linux系统上使用kvm虚拟化系统需要对主机开启虚拟化,并做一些基础设置,…

C# 答群友:把窗体应用改成类库输出然后去引用

类库你就新建类库文件直接生成dll去引用好了,但是群友非要骚操作,新建一个windows窗体把他搞成dll去引用,当时我回答了这个问题是可以的,但是实际上我没有这么干过,今天恰好有空,体验了一把,的确…

麻省理工告诉我们男女配对的真相!

全世界有3.14 % 的人已经关注了数据与算法之美该实验出自麻省理工学院著名经济学家Dan Ariely的《The Upside of Irrationality》。其结果很有趣,也在我们的生活中尤为常见。Part 1.实验人员找来100位正值青春年华的大学生。男女各半。然后制作了100张卡片&#xff…

快速排序的性能和名字一样优秀

前言上次分享的冒泡排序虽然比较简单、容易理解,但每一次冒泡的过程都需要依次比较相邻的元素,然后交换,可见性能还是有很大的优化空间,只要能减少比较次数,性能自然就上去啦;快速排序便是一个很不错的选择…

资料分享 | 教程与开发手册资料分享来袭

小编从大学开始,便开启资料收集功能。随着科技时代的不断发展,计算机语言发展进入新的阶段,再加上日常的深入研究,小编收集整理了丰富的计算机语言学习资料,内容涵盖“教程与开发手册”,“js资料”、“PHP编…

备受期待的Python深度学习来了

在这个酣畅淋漓的暑假结束后,深度学习的四大名著之一漂洋过海来见中国的程序员们啦,豆瓣评分9.5分的《Deep Learning with Python》,推出中译版——《Python深度学习》Deep Learning with PythonPython深度学习扫码购买优惠近30元&#xff01…

安装linux6.10 I386系统教程,一看就懂的Centos6.10安装教程

第一步将虚拟机安装完毕后,运行虚拟机进行到这个界面下(虚拟机安装及其配置,详见论坛内的博客分享在这就不在陈述),:出现的是5条英文由上到下以此分别为:1.安装或升级2.基本的显卡驱动来安装系统(在有些操作系统无法识…

计算机是怎么知道两张图片相似的呢?

全世界有3.14 % 的人已经关注了数据与算法之美很多搜索引擎可以用一张图片,搜索互联网上所有与它相似的图片。你输入网片的网址,或者直接上传图片,Google就会找出与其相似的图片。下面这张图片是美国女演员Alyson Hannigan。上传后&#xff0…

WPF实现下拉框带图文和水印

WPF开发者QQ群&#xff1a; 340500857 有小伙伴需要实现ComboBox下拉框带水印&#xff0c;并且选择Item内容后水印默认从中间到顶部。Item需要展示图文&#xff0c;选择后的数据展示图文。欢迎转发、分享、点赞&#xff0c;谢谢大家~。效果如下&#xff1a;一、Xaml代码如下<…

Google第一女神李飞飞,从洗碗工蜕变成为首席科学家

全世界有3.14 % 的人已经关注了数据与算法之美最近这几天&#xff0c;5岁孩子简历事件刷爆了朋友圈。批阅完朋友圈的文章&#xff0c;超模君心好累。别人家的孩子5岁已经每周3篇英语日记&#xff0c;而5岁我却还在玩泥巴&#xff0c;终于明白什么叫输在起跑线上了。即便输在了起…

通过Dapr实现一个简单的基于.net的微服务电商系统(九)——一步一步教你如何撸Dapr之OAuth2授权...

Oauth2授权&#xff0c;熟悉微信开发的同学对这个东西应该不陌生吧。当我们的应用系统需要集成第三方授权时一般都会做oauth集成&#xff0c;今天就来看看在Dapr的语境下我们如何仅通过配置无需修改应用程序的方式让第三方服务保护我们的API应用。目录&#xff1a;一、通过Dapr…

宝宝学数学的第一套书,秒杀题海战术!上小学前应该这样学数学!

作为一个小学口心算特好、初高中也特别好的学霸。小木一直很关心孩子们的数学问题。我一直都在探索如何引领孩子走进数学的大门&#xff0c;启发他学数学的兴趣&#xff0c;以及把数学思维应用到生活中&#xff0c;而不仅仅是学会背数、四则运算、乘法口诀。孩子大多在3、4岁开…

使用 Azure Container Registry 储存镜像

Azure Container Registry&#xff08;容器注册表&#xff09;是基于 Docker Registry 2.0规范的托管专用 Docker 注册表服务。可以创建和维护 Azure 容器注册表来存储与管理专用的 Docker 容器映像和相关项目。Azure Container Registry 类似与阿里云的容器镜像服务。提供镜像…

linux级别3怎么配置DNS,Linux下DNS服务器配置详解

6)辅助区域的文件基本和主区域的配置一样&#xff0c;就是不再需要在options块中加allow-transfer {}&#xff1b;&#xff0c;编辑named.rfc1912.zones文件&#xff0c;如下图进行添加&#xff1a;一定要将默认的"allow-update {none;}; "项&#xff0c;即将允许更新…

入门机器学习,这一步必不可少!

AI这个词相信大家都非常熟悉&#xff0c;近几年来人工智能圈子格外热闹&#xff0c;光是AlphoGo就让大家对它刮目相看。今天小天就来跟大家唠一唠如何进军人工智能的第一步——机器学习。在机器学习领域&#xff0c;Python已经成为了主流。一方面因为这门语言简单易上手&#x…

.NET 中的 Worker Service 入门介绍

翻译自 Steve Gordon 2020年3月30日的文章 《WHAT ARE .NET WORKER SERVICES?》 [1]随着 .NET Core 3.0 的发布&#xff0c;ASP.NET 团队引入了一个新的 Worker Service 项目模板&#xff0c;该模板作为 .NET SDK 的一部分发布。在本文中&#xff0c;我将向您介绍这个新模板&a…

为什么前后端分离了,你比从前更痛苦?

你有没有遇到过&#xff1a;前端代码刚写完&#xff0c;后端的接口又变了。接口文档永远都是不对的。测试工作永远只能临近上线才能开始。为什么前后端分离了&#xff0c;你比从前更痛苦&#xff1f;前后端分离早已经不是新闻&#xff0c;当真正分离之后确遇到了更多问题。要想…

响应式设计(Response Web Design)浅谈

响应式Web设计&#xff0c;这个话题可能是当下Web设计领域里讨论和应用比较多的话题了&#xff0c;为什么要响应式Web设计?什么是响应式Web设计? Web发展迅速&#xff0c;各种应用和服务层出不穷&#xff0c;现在打开电脑&#xff0c;可能使用最多的程序应该是浏览器了&#…

现在6岁的小朋友都开始学编程了……

前段时间&#xff0c;朋友跟小木说&#xff1a;现在的小孩什么都要学&#xff0c;以后是不是都要学编程了&#xff1f;小木鄙夷地笑了一下&#xff1a;他们已经学编程了啊&#xff01;朋友表情↓↓↓朋友&#xff1a;纳尼&#xff1f;&#xff1f;&#xff1f;我到大学才接触编…