《算法技术手册》一3.4.2 舍入误差

简介: 本节书摘来华章计算机《算法技术手册》一书中的第3章 ,第3.4.2节, George T.Heineman Gary Pollice Stanley Selkow 著 杨晨 曹如进 译 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.4.2 舍入误差

考虑到浮点数的表示形式,任何使用浮点数的运算都有可能存在舍入误差。因为最初设计浮点数的时候,我们使用了一个有限的数来近似地表示一个实数,而这个实数的范围可以大到无限大。表3-2展示了浮点数的表示方式(以3.88f为例)。
表3-2:浮点数表示
2017_09_20_110752
3.88f后面接下来三个连续的32位浮点表示是:
2017_09_20_110836
随机选择三个32位的单精度浮点数,表示为:
2017_09_20_110906
在32位浮点数中,1位用于表示符号,8位用于表示指数,23位用于表示尾数(也就是有效数)。在Java 的浮点表示中,“将指数部分作为一个正数,然后从这个正数中减去一个基准值,得到2的幂。对于一个浮点数来说,这个基准值是126”(Venners,1996)。如果指数部分是128,那么实际的指数值是128-126,即为2。
为了得到最高的精确度,尾数必须是标准化的,因此最左边的数字永远是1。虽然并不需要每次都物理上存储这一位,但是浮点数处理器必须要遵守这条标准:那就是左边永远应该是1,并且在需要的时候补上这一位。在之前的例子中,尾数是.[1]11110000101000111101100 = [1/2] + 1/4 + 1/8 + 1/16 + 1/32 + 1/1024 + 1/4096 + 1/65 536 + 1/131 072 + 1/262 144 + 1/524 288 + 1/2 097 152 + 1/4 194 304 ,四舍五入之后,这个和是0.9700000286102294921875。
因此,当使用这种表示方法存储3.88f时,近似值是 + 12017_09_20_1110040.9700000286102294921875*22,也就是3.88000011444091796875。固有误差为~0.0000001。描述浮点误差最常用的方法是使用相对误差——相对误差计算的是绝对误差和期望值的一个比率。在这里,相对误差是0.0000001144091796875/3.88,或者写作2.9E-8。低于10-6的相对误差是相当普遍的。

相关文章
|
人工智能 运维 算法
基于 C# 深度优先搜索算法的局域网集中管理软件技术剖析
现代化办公环境中,局域网集中管理软件是保障企业网络高效运行、实现资源合理分配以及强化信息安全管控的核心工具。此类软件需应对复杂的网络拓扑结构、海量的设备信息及多样化的用户操作,而数据结构与算法正是支撑其强大功能的基石。本文将深入剖析深度优先搜索(Depth-First Search,DFS)算法,并结合 C# 语言特性,详细阐述其在局域网集中管理软件中的应用与实现。
277 3
|
10月前
|
监控 算法 安全
基于 C# 基数树算法的网络屏幕监控敏感词检测技术研究
随着数字化办公和网络交互迅猛发展,网络屏幕监控成为信息安全的关键。基数树(Trie Tree)凭借高效的字符串处理能力,在敏感词检测中表现出色。结合C#语言,可构建高时效、高准确率的敏感词识别模块,提升网络安全防护能力。
268 2
|
9月前
|
运维 监控 算法
基于 Java 滑动窗口算法的局域网内部监控软件流量异常检测技术研究
本文探讨了滑动窗口算法在局域网流量监控中的应用,分析其在实时性、资源控制和多维分析等方面的优势,并提出优化策略,结合Java编程实现高效流量异常检测。
382 0
|
监控 算法 JavaScript
基于 JavaScript 图算法的局域网网络访问控制模型构建及局域网禁止上网软件的技术实现路径研究
本文探讨局域网网络访问控制软件的技术框架,将其核心功能映射为图论模型,通过节点与边表示终端设备及访问关系。以JavaScript实现DFS算法,模拟访问权限判断,优化动态策略更新与多层级访问控制。结合流量监控数据,提升网络安全响应能力,为企业自主研发提供理论支持,推动智能化演进,助力数字化管理。
303 4
|
存储 监控 算法
内网监控桌面与 PHP 哈希算法:从数据追踪到行为审计的技术解析
本文探讨了内网监控桌面系统的技术需求与数据结构选型,重点分析了哈希算法在企业内网安全管理中的应用。通过PHP语言实现的SHA-256算法,可有效支持软件准入控制、数据传输审计及操作日志存证等功能。文章还介绍了性能优化策略(如分块哈希计算和并行处理)与安全增强措施(如盐值强化和动态更新),并展望了哈希算法在图像处理、网络流量分析等领域的扩展应用。最终强调了构建完整内网安全闭环的重要性,为企业数字资产保护提供技术支撑。
333 2
|
存储 监控 算法
基于 Python 哈希表算法的局域网网络监控工具:实现高效数据管理的核心技术
在当下数字化办公的环境中,局域网网络监控工具已成为保障企业网络安全、确保其高效运行的核心手段。此类工具通过对网络数据的收集、分析与管理,赋予企业实时洞察网络活动的能力。而在其运行机制背后,数据结构与算法发挥着关键作用。本文聚焦于 PHP 语言中的哈希表算法,深入探究其在局域网网络监控工具中的应用方式及所具备的优势。
364 7
|
运维 监控 算法
基于 Python 迪杰斯特拉算法的局域网计算机监控技术探究
信息技术高速演进的当下,局域网计算机监控对于保障企业网络安全、优化资源配置以及提升整体运行效能具有关键意义。通过实时监测网络状态、追踪计算机活动,企业得以及时察觉潜在风险并采取相应举措。在这一复杂的监控体系背后,数据结构与算法发挥着不可或缺的作用。本文将聚焦于迪杰斯特拉(Dijkstra)算法,深入探究其在局域网计算机监控中的应用,并借助 Python 代码示例予以详细阐释。
306 6
|
存储 算法 物联网
解析局域网内控制电脑机制:基于 Go 语言链表算法的隐秘通信技术探究
数字化办公与物联网蓬勃发展的时代背景下,局域网内计算机控制已成为提升工作效率、达成设备协同管理的重要途径。无论是企业远程办公时的设备统一调度,还是智能家居系统中多设备间的联动控制,高效的数据传输与管理机制均构成实现局域网内计算机控制功能的核心要素。本文将深入探究 Go 语言中的链表数据结构,剖析其在局域网内计算机控制过程中,如何达成数据的有序存储与高效传输,并通过完整的 Go 语言代码示例展示其应用流程。
260 0