table maker's delimma
table maker's delimma是计算机浮点数精度的一个问题。
浮点数的表示方式
计算机能表示的数字都是有理数,所有的有理数都可以归结为下面的模式:
1.@@@ × 2####
其中,@@@ 和 ####都表示0或1,上式的意思是任何一个有理数总可以表示为1点几 乘以 2的 ####次方。注意,这里都使用的是2进制。
在计算机中一个浮点数就由三部分组成:
- 符号位,1个bit,0或1表示正负
- 小数部分,即上面的@@@,对float,小数位有23位,double float有52位
- 指数部分,即上面的####,float有8位,double float有11位。
不是所有的有理数都可以在计算机里表示。比如x=1.00000000....000001 当中间的0多于51个时,double float也无法容纳小数部分,计算机只能自动截取,把尾部的1忽略掉了。x的表示和1.0没有区别。可以精确存储的数,我们称作可表示的数。
如何近似
计算机无法存储一个无理数,我们只能使用无理数的有理数近似,而且这个。IEEE-745 规定了几种近似方法:靠近0,靠近+∞,靠近-∞,靠近最近的可以表示的有理数。
table maker's delimma
对sin cos log 这类函数f,计算结果是无理数,我们不能用有限的小数位精确表示。那么如何计算 y=f(x)?计算机中我们使用近似值 y*。我们期望y和y* 的差距足够小。我们期望找到一个最小的整数m,使得 |y-y*|<2-m.
困境在于,无论我们用无法找到一致的m,使得在任何一种近似方法下,保证y和y*的近似值是相同的。
注释一下,这里的“一致”是一致收敛的一致,即对任何y和y*都存在一个相同的m。比如对y1,y1*可以用m1套住,但总有无法用m1套住的y2,y2*
参考:
http://perso.ens-lyon.fr/jean-michel.muller/Intro-to-TMD.htm
http://www.vinc17.org/research/slides/aoc2000-11.pdf
table maker's delimma的更多相关文章
- Codeforces Round 500 (Div 2) Solution
从这里开始 题目地址 瞎扯 Problem A Piles With Stones Problem B And Problem C Photo of The Sky Problem D Chemica ...
- maker 2008年发表在genome Res
http://gmod.org/wiki/MAKER_Tutorial 简单好用 identify repeats, to align ESTs and proteins to the genome, ...
- 散列表(hash table)——算法导论(13)
1. 引言 许多应用都需要动态集合结构,它至少需要支持Insert,search和delete字典操作.散列表(hash table)是实现字典操作的一种有效的数据结构. 2. 直接寻址表 在介绍散列 ...
- React使用antd Table生成层级多选组件
一.需求 用户对不同的应用需要有不同的权限,用户一般和角色关联在一起,新建角色的时候会选择该角色对应的应用,然后对应用分配权限.于是写了一种实现的方式.首先应用是一个二级树,一级表示的是应用分组,二级 ...
- 创建几个常用table展示方式插件
这次和大家分享的是自己写的一个table常用几种展示格式的js插件取名为(table-shenniu),样式使用的是bootstrap.min.css,还需要引用jquery.min.js包,这个插件 ...
- html中table边框属性
1.向右(横向)合并: <td colspan="5"><span>后台管理系统</span></td> 2.向下(纵向)合并: & ...
- MySQL中You can't specify target table for update in FROM clause一场
mysql中You can't specify target table <tbl> for update in FROM clause错误的意思是说,不能先select出同一表中的某些值 ...
- 打印Lua的Table对象
小伙伴们再也不用为打印lua的Table对象而苦恼了, 本人曾也苦恼过,哈哈 不过今天刚完成了这个东西, 以前在网上搜过打印table的脚本,但是都感觉很不理想,于是,自己造轮子了~ 打印的效果,自己 ...
- React中使用Ant Table组件
一.Ant Design of React http://ant.design/docs/react/introduce 二.建立webpack工程 webpack+react demo下载 项目的启 ...
随机推荐
- 33. Search in Rotated Sorted Array(二分查找)
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...
- ios 透过上层视图点击相应下方视图的点击事件
- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event{ UIView *hitView = [super hitTest:point ...
- Scrapy: 初识Scrapy
1.初识Scrapy Scrapy是为了爬取网站数据,提取结构性数据而编写的应用框架.可以应用在包括数据挖掘,信息处理或者存储历史数据等一系列的程序中. 2.选择一个网站 当需要从某个网站获取信息时, ...
- Python: 字符串开头或结尾匹配str.startswith(),str.endswith()
问题 需要通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URLScheme 等等. 解决方案 1.检查字符串开头或结尾的一个简单方法是使用str.startswith() 或者是str ...
- python 有道翻译
import requests import time import random import hashlib i = str(int(time.time()*1000)+random.randin ...
- pycharm中内看内建函数的定义
鼠标方法在内建函数上,Ctrl+B,看内建函数的定义 如果想要看内置函数的具体实现细节,可以到python的lib目录下C:\Python27\Lib\,或者python的官网上 如果要看非内建的函数 ...
- 处理内容有&特殊字符thinkphp返回xml无法解析的问题<![CDATA[xxx]]>
处理内容有&特殊字符thinkphp返回xml无法解析的问题<![CDATA[xxx]]> // xml 转义特殊字符 如&'" <![CDATA[&quo ...
- sql server 数据排名
城市排名列表 )) AS px, ) pm25, ) pm10, ) co, ) no2, ) so2,) o3_8,) indexs,) aqi FROM monitor_city_hour m,c ...
- Confluence5.8部分空间名称显示为问号的解决方案
Confluence5.8部分空间名称显示为问号的解决方案 原因: 连接MySQL的时候,有没有在连接串中指定&useUnicode=true&characterEncoding=ut ...
- 三步搞定 opencv 初始环境设定
一.设定bin的初始位置:比如我的电脑 D:\安装程序\opencv\build\x86\vc10\bin H:\生产力工具\opencv\build\x86\vc10\bin D:\安装程 ...