怎么证明根号2是无理数,我们来推导和计算,还有逼格极高的算法
这是学习笔记的第 2161 篇文章
记得上学的时候忙着考试,把心头的一些为什么都压在了脑后。
面对未知,我们大多数人都选择了默认接受,其实你不懂根号2,
比如:根号2(√2)为什么是无理数,我们有什么办法去计算它。
当我冒出这个想法的时候,其实大部分人的反映都一样1+1开根号就是啊,至于为什么,就是规定呗,当然把根号作为一种符号确实如此,但是离结果还差了很远。
这个问题追根溯源,会发现远比我们想象的要复杂,得追溯到古希腊时期。
毕达哥拉斯(Pythagoras,约公元前580年至公元前500年间)是古希腊的大数学家,他提出“万物皆为数”的观点。公元前500年,毕达哥拉斯学派的弟子希伯索斯(Hippasus)突然发现好像有些情况解释不了,比如一个正方形的对角线与其一边的长度,这明显与毕氏学派的“万物皆为数”(指有理数)的哲理大相径庭,使得学派领导人很惶恐,最后被毕氏门徒残忍地投入了水中杀害。
要去计算根号2的值,我们可以拆分为两个问题。
1)怎么证明根号2是无理数
2)根号2的无理数值是怎么计算出来的?
我们来从求知的角度来证明下根号2(√2)为什么是无理数?
方法1:尾数证明法:
假设根号2是一个有理数,那么根号2就可以使用a/b的形式来标识,其中(a,b)=1,(表示a 与 b 最大的公因数是1),a和b都是正整数,明确了这些条件,我们就开始证明了。
第1步:√2=a/b 那么可以得到a*a=2*b*b
第2步:从数的平方我们可以很快得到,b*b的尾数范围是 (0,1,4,5,6,9)中的一个数,不可能是2,3,7,8,这个道理不难理解;
第3步:2*b*b的尾数范围是(0,2,8)中的一个数,
第4步:因为a*a=2*b*b,那么a*a的尾数范围可以排除2和8,只有0
第5步:因为2*b*b得到的值肯定是一个偶数,那么b*b的尾数范围是(0,5)
第6步:按照目前的尾数可选项,a和b存在公因数5,和(a,b)=1是相矛盾的。
所以根号2是一个无理数。
方法2:奇偶分析法
假设√2=a/b 那么可以得到a*a=2*b*b,(a,b)=1,(表示a 与 b 最大的公因数是1,a和b都是正整数
1)根据2*b*b可以推得a是一个偶数,我们可以设置a=2c
2)4*c*c=2*b*b得到 b*b=2*c*c,可以得到b也是偶数
3)a,b都是偶数,这和(a,b)=1相矛盾
所以根号2是一个无理数,可以说明的是希帕索斯就是用这种方法证明的。
还有很多种方法补充,差不多有8种左右,我就不一一罗列了。
如何计算根号2的值呢,查找了不少资料,我觉得这几种方法还是能消化的。
方法1:
(√2+1)(√2-1)=1,这是我们参考的一个基准,可以按照这种方式不断的展开。
√2-1=1/(√2+1)
√2 = 1+ 1/(√2+1),继续带入根号2的对等公式
√2 = 1+ 1/(1+ 1/(√2+1)+1)=1+ 1/(2+ 1/(√2+1))
继续推导:
√2=1+ 1/(2+ 1/(√2+1))=1+ 1/(2+ 1/(1+ 1/(√2+1)+1))=1+ 1/(2+ 1/(2+ 1/(√2+1)))
这种方式叫做连分数法,我们可以通过这种不断的迭代可以得到更加精确的值。
方法2:
我们可以很容易得到根号2的范围,明显是大于1的,所以我们可以按照y=x+1的函数来表示,即
√2 = y=1+x
对上式做平方,得到
2=(1+x)(1+x),得到
2=1+x*x+2*x+1,进一步得到,
x*x+2*x=1,推得,x*(x+2)=1,得到
x=1/(x+2),所以
1/x=2+x=2+1/(2*x)=2+1/(2*1/(x+2))
=2+1/(2*1/(1/(x+2)+2))
按照这种方式可以不断的推导,得到更加精确的值。
计算机如何计算根号2
当然还有很多高大上的方法来进一步辅助,比如牛顿迭代法,二分法等
那么如何在计算机中来计算得到根号2呢, 这里要介绍一个传奇算法:算法名字就是:0x5f375a86,看起来像是一个内存地址一样,该算法据说比牛顿迭代法快4倍,核心的代码类似下面这样:
i = 0x5f375a86 - (i>>1);
至今为止仍未能确切知晓此常数的起源 ,值得一提的是这个值最初为0x5f3759df,后来由Lomont通过暴力穷举找到这个更优值,即0x5f375a86
Lomont采用暴力方法逐步尝试,终于找到一个比之前的好那么一丁点的数字,虽然实际上这两个数字所产生的结果非常近似,这个暴力得出的数字是0x5f375a86,为此他写了一篇论文《Fast Inverse Square Root》
点击原文查看这篇论文,我是被震撼到了。
近期热文:
迁移到MySQL的业务架构演进实战
数据库修改密码风险高,如何保证业务持续,这几种密码双活方案可以参考
MySQL业务双活的初步设计方案
如何优化MySQL千万级大表,我写了6000字的解读
一道经典的MySQL面试题,答案出现三次反转
业务双活的数据切换思路设计(下)
业务双活的数据切换思路设计(一)
MySQL中的主键和rowid,看似简单,其实有一些使用陷阱需要注意
小白学MySQL要多久?我整理了10多个问题的答案
转载热文:
《吊打面试官》系列-Redis基础
唯一ID生成算法剖析,看看这篇就够了
关于大数据运维能力的一些思考
DBA菜鸟的进化简史:不忘初心,记工作中踩过的三个坑
美女主持直播,被突发意外打断!湾区网友却高喊: 我懂!超甜
QQ群号:763628645
QQ群二维码如下, 添加请注明:姓名+地区+职位,否则不予通过
点在看,让更多人看到
怎么证明根号2是无理数,我们来推导和计算,还有逼格极高的算法相关推荐
- 能将无理数化为根号形式的计算机,怎么证明根号2是无理数,我们来推导和计算,还有逼格极高的算法...
原标题:怎么证明根号2是无理数,我们来推导和计算,还有逼格极高的算法 记得上学的时候忙着考试,把心头的一些为什么都压在了脑后. 面对未知,我们大多数人都选择了默认接受,其实你不懂根号2, 比如:根号2 ...
- 如何证明根号3是无理数?------顺便说下希帕索斯和第一次数学危机
我们都知道, 根号2是无理数, 初中数学课本给过一个非常优美的反证法. 当年,希帕索斯发现了这个秘密,引发了第一次数学危机.毕达哥拉斯解决不了这次数学危机,就想办法解决了提出问题的人.斯帕索斯死得好惨 ...
- 关于根号p是无理数的另类证明
这个证明是窝和房姐姐的第一次接触时候完成的.那个时候经常上那个什么鬼计算机基础,科科,经常玩进位制,于是灵感大法,完成于2013年的中秋节假期. 问题:若pp不是完全平方数,那么p√\sqrt{p}为 ...
- 猫=图灵机?4项测试证明,「猫猫计算机」可执行任意计算
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 编辑:David 小咸鱼 [导读]近日,一位法国开发者Chloé Lourseyre在 ...
- 用计算机算3次根号0.00005,使用ORCA在TDDFT下计算旋轨耦合矩阵元和绘制旋轨耦合校正的UV-Vis光谱...
使用ORCA在TDDFT下计算旋轨耦合矩阵元和绘制旋轨耦合校正的UV-Vis光谱 文/Sobereva@北京科音 First release: 2019-Feb-10 Last update: 20 ...
- 根号二用计算机怎么算,Sqrt-如何计算根号2
二分法 二分法:通过二分的方式,不断计算比较,推出根号2的一个近似值. [1, 2] [1, 1.5] .... 缺点:性能不高 牛顿迭代法 y = x^2 - 2 的图像 其实,计算根号2就是计算与 ...
- 如何用一段代码证明JVM加载类是懒加载模式?分享PDF高清版
阿里一面 讲一下 HashMap 中 put 方法过程? 对 Key求Hash 值,然后再计算 下标. 如果没有碰撞,直接放入桶中, 如果碰撞了,以链表的方式链接到后面, 如果链表长度超过阀值(TRE ...
- 4 种经典方法IB 数学证明题分享给大家
学习数学时感觉最有意思的题目就是证明题了,证明题能练习一种能力: 你知道一件事情时对的,怎么说清楚它是对的:你认为一件事情时错的,怎么说清楚它是错的. 这和生活中的辩论有点像,要有理有据地说清楚原因. ...
- Introduction to Mathematical Thinking - Week 3
there exists and all there exists 证明根号2是无理数 all 习题 3. Which of the following formal propositions say ...
最新文章
- 实例化Layout中的布局文件(xml)
- Visual Entity 教程(一)从数据库创建模型
- Metasploit Framework(1)基本命令、简单使用
- 利用SAP Cloud Platform control center给global账号分配服务
- Struts2中ActionContext介绍
- 信息学奥赛一本通 1981:【18NOIP普及组】对称二叉树 | 洛谷 P5018【NOIP2018 普及组】 对称二叉树
- 创建设计模式 - Singleton设计模式(最佳实践与示例)
- 经典最优滤波器(概述)
- Encoder与Decoder
- php升维,svm算法详解
- 一个没暂时没有办法实现的问题和一个有意思的小问题!
- 伊洛纳登录显示服务器连接中,伊洛纳萌新入坑常见问题汇总
- 在Spring Boot中使用Spring Security实现权限控制
- android自定义wifi列表,Android开发之Wifi基础教程
- WarDrive:使用Backtrack 4中的Kismet进行嗅探并使用GE绘制地图的简明攻略
- UE4_编辑器UMG关闭窗口不能立刻销毁UMG
- Music decoding tool | 音乐解码工具
- 【MDCC 2015】平台与技术-Android专场(上):剖析Android应用架构与设备体验
- Go语言十一大主流微服务框架
- 流畅的python第二章, 列表和元组和数组
热门文章
- 凑个热闹 谈谈网红沈大师
- JavaSE入门:面向对象(三)
- 远程协作从“特殊”到“常态”,你可能需要的会议平板测评
- 应用启动图标未读消息数显示 工具类
- 【BZOJ3569】DZY Loves Chinese II(线性基,图的连通性)
- 武未转变服务器tp,2020年十大经典战役推荐:用一张TP让你知道垄断的威力
- Android仿微信图片编辑处理:文字,马赛克,裁剪,涂鸦,旋转图片等
- 【Unity】用Lerp()实现类杀戮尖塔手牌变化
- 滴滴共享单车在深圳被叫停;六六接受京东道歉;宝马发布最新充电网络计划丨价值早报
- 华为S5700实战配置