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的更多相关文章

  1. Codeforces Round 500 (Div 2) Solution

    从这里开始 题目地址 瞎扯 Problem A Piles With Stones Problem B And Problem C Photo of The Sky Problem D Chemica ...

  2. maker 2008年发表在genome Res

    http://gmod.org/wiki/MAKER_Tutorial 简单好用 identify repeats, to align ESTs and proteins to the genome, ...

  3. 散列表(hash table)——算法导论(13)

    1. 引言 许多应用都需要动态集合结构,它至少需要支持Insert,search和delete字典操作.散列表(hash table)是实现字典操作的一种有效的数据结构. 2. 直接寻址表 在介绍散列 ...

  4. React使用antd Table生成层级多选组件

    一.需求 用户对不同的应用需要有不同的权限,用户一般和角色关联在一起,新建角色的时候会选择该角色对应的应用,然后对应用分配权限.于是写了一种实现的方式.首先应用是一个二级树,一级表示的是应用分组,二级 ...

  5. 创建几个常用table展示方式插件

    这次和大家分享的是自己写的一个table常用几种展示格式的js插件取名为(table-shenniu),样式使用的是bootstrap.min.css,还需要引用jquery.min.js包,这个插件 ...

  6. html中table边框属性

    1.向右(横向)合并: <td colspan="5"><span>后台管理系统</span></td> 2.向下(纵向)合并: & ...

  7. 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出同一表中的某些值 ...

  8. 打印Lua的Table对象

    小伙伴们再也不用为打印lua的Table对象而苦恼了, 本人曾也苦恼过,哈哈 不过今天刚完成了这个东西, 以前在网上搜过打印table的脚本,但是都感觉很不理想,于是,自己造轮子了~ 打印的效果,自己 ...

  9. React中使用Ant Table组件

    一.Ant Design of React http://ant.design/docs/react/introduce 二.建立webpack工程 webpack+react demo下载 项目的启 ...

随机推荐

  1. Python tricks(5) -- string和integer的comparison操作

    我们都知道, python是一个强类型的语言, 也是一个动态类型的语言. 但是在python2.X系列中, 这个强类型是需要打折扣的, 是非常接近强类型. 我们来看下面的代码片段 In [1]: 'a ...

  2. Python3 判断文件和文件夹是否存在、创建文件夹

    Python3 判断文件和文件夹是否存在.创建文件夹 python中对文件.文件夹的操作需要涉及到os模块和shutil模块. 创建文件: 1) os.mknod(“test.txt”) 创建空文件  ...

  3. wireshark捕获表达式之Berkeley Packet Filter (BPF) syntax

    就网络抓包来说,绝大部分的情况下,我们都是对特定的ip/端口/协议进行捕获和分析,否则就会有大量的垃圾报文,使得分析和性能低下.大部分的抓包工具都采用BPF语法,具体可参考 http://biot.c ...

  4. bootstrap 日期控件常用选项

    使用bootstrap作为UI基础之后,为了尽可能的保持系统风格的一致性,通常我们不太会考虑再引入My97DatePicker作为日期控件. 作为潜在实现的选择之一,http://www.bootcs ...

  5. 自动对比度的opencv实现

    在http://www.cnblogs.com/Imageshop/archive/2011/11/13/2247614.html 一文中,作者给出了“自动对比度”的实现方法,非常nice 实际实现过 ...

  6. 20145127《java程序设计》第二周学习总结

    本周我又对java程序进行了更进一步的学习.相比与上一周的学习内容的宏观,这一周的所学更加的系统和调理明确. 本周是对java基础语法的学习.首先,我先是认识类型与变量. Java可区分为基本类型和类 ...

  7. tf.multiply()和tf.matmul()区别

    (1)tf.multiply是点乘,即Returns x * y element-wise. (2)tf.matmul是矩阵乘法,即Multiplies matrix a by matrix b, p ...

  8. poj 2369 Permutations - 数论

    We remind that the permutation of some final set is a one-to-one mapping of the set onto itself. Les ...

  9. Razor语法快速参考

    语法/示例 Razor Web Forms对应写法或说明 代码块 @{ int x = 123; string y = "because.";} <% int x = 123 ...

  10. 在ubuntu bionic下对基于qemu的arm64进行linux内核5.0.1版本的编译和运行

    一.环境介绍 OS:ubuntu bionic 64bit 二.准备工作 2.1 安装必要的开发工具 sudo apt-get install git flex bison build-essenti ...