浮点处理器非确定性?

2023-12-11

在不涉及不必要的细节的情况下,基于相同的输入,浮点数(x86_64)上的运算是否有可能返回其结果的微小变化?哪怕有一点点不同?

我正在模拟一个基本混沌的系统,我希望数据的微小变化会产生明显的影响。然而我预计,使用相同的数据,程序的行为将被修复。不是这种情况。每次运行程序时我都会看到明显但可以接受的差异。

我想我在某处留下了一些未初始化的变量......

我使用的语言是 C++ 和 Python。

ANSWER

拉塞尔的回答是正确的。浮点运算是确定性的。不确定性是由悬空指针引起的。


是的,这是可能的。引用自C++ 常见问题解答:

事实证明,在某些安装中,即使 x == y,cos(x) != cos(y) 也是如此。这不是一个错字;如果您不感到震惊,请再读一遍:某个事物的余弦可能不等于同一事物的余弦。 (或者正弦,或者正切,或者对数,或者任何其他浮点计算。)

Why?

[F] 浮点计算和比较通常由通常包含特殊寄存器的特殊硬件执行,并且这些寄存器通常具有比双精度更多的位。这意味着中间浮点计算通常具有比 sizeof(double) 更多的位,并且当浮点值写入 RAM 时,它通常会被截断,通常会丢失一些精度位。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浮点处理器非确定性? 的相关文章

  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 在 Visual Studio 2010 中从 Fortran 调用 C++ 函数

    我想从 Fortran 调用 C 函数 为此 我在 Visual Studio 2010 中创建了一个 FORTRAN 项目 之后 我将一个 Cpp 项目添加到该 FORTRAN 项目中 当我要构建程序时出现以下错误 Error 1 unr
  • pandas - 包含时间序列数据的堆积条形图

    我正在尝试使用时间序列数据在 pandas 中创建堆积条形图 DATE TYPE VOL 0 2010 01 01 Heavy 932 612903 1 2010 01 01 Light 370 612903 2 2010 01 01 Me
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • 外键与独立关系 - Entity Framework 5 有改进吗?

    我读过了several http www ladislavmrnka com 2011 05 foreign key vs independent associations in ef 4 文章和问题 https stackoverflow
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • 如何以正确的方式为独立的Python应用程序制作setup.py?

    我读过几个类似的主题 但还没有成功 我觉得我错过或误解了一些基本的事情 这就是我失败的原因 我有一个用 python 编写的 应用程序 我想在标准 setup py 的帮助下进行部署 由于功能复杂 它由不同的 python 模块组成 但单独
  • 如果 PyPy 快 6.3 倍,为什么我不应该使用 PyPy 而不是 CPython?

    我已经听到很多关于PyPy http en wikipedia org wiki PyPy项目 他们声称它比现有技术快 6 3 倍CPython http en wikipedia org wiki CPython口译员开启他们的网站 ht
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • Cmake 链接共享库:包含库中的头文件时“没有这样的文件或目录”

    我正在学习使用 CMake 构建库 构建库的代码结构如下 include Test hpp ITest hpp interface src Test cpp ITest cpp 在 CMakeLists txt 中 我用来构建库的句子是 f
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • pytest找不到模块[重复]

    这个问题在这里已经有答案了 我正在关注pytest 良好实践 https docs pytest org en latest explanation goodpractices html test discovery或者至少我认为我是 但是
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的

随机推荐

  • AWS ECS 在一个任务定义中启动多个容器

    我有一个带有一个应用程序的 docker 容器 应用程序根据传递到入口点的输入参数运行 我想为 ECS 创建一个任务定义 并在一个任务定义中并行运行多个容器 每个容器具有不同的输入参数 问题是 如果不设置我就无法做到这一点基本的任务定义中我
  • com.fasterxml.jackson.databind.JsonMappingException:数值(1557587751202)超出 int 范围

    我使用 Spring Initializr 生成了一个 Spring Boot Web 应用程序 在 macOS Sierra 中使用嵌入式 Tomcat Thymeleaf 模板引擎 我必须在其中解析 Json 对象 我有一个具有此属性的
  • 发送带有字母字符的 USSD 代码

    在我的 Android 应用程序中 我正在发送USSD codes 144 73 使用下面Intent String baseUssd Uri encode 144 Uri encode StringBuilder builder new
  • 具有非 None 类属性的类的新实例?

    我有一个 Python 类 其类属性设置为除None 创建新实例时 对该属性所做的更改将在所有实例中永久存在 下面是一些代码来解释这一点 class Foo object a b 2 foo Foo foo a append item fo
  • 在 OptionMenu 选择更改后更新标签文本

    我的目标是更新标签的内容price 每次选项菜单中出现新项目时w被选中 到目前为止 这是我的代码 但它返回了我不知道如何修复的错误 class App Frame def init self master None Frame init s
  • 使用 Symfony2 和 Doctrine2 插入另一个表后尝试更新一个表

    我写了一个函数BudgetRepository将新数据插入预算表时调用该函数 其功能是 public function addBudgetToClient clientId budgetId return this gt createQue
  • 用于处理应用程序内弹出窗口的 Web 浏览器

    我正在尝试使用 WebBrowser 控件启动弹出窗口的新表单 而不是在 IE 中打开它 我尝试使用 AxWebBrowser 来获取与 NewWindow3 事件一起使用的弹出窗口 并且只是做e ppDisp AxWebBrowser A
  • 将 pandas 数据框字符串条目拆分(分解)为单独的行

    我有一个pandas dataframe其中一列文本字符串包含逗号分隔的值 我想拆分每个 CSV 字段并为每个条目创建一个新行 假设 CSV 是干净的并且只需要按 进行拆分 例如 a应该成为b In 7 a Out 7 var1 var2
  • Intellij Scala 工作表运行类型差异解释

    在 Intellij Scala 工作表支持中 运行类型 即 PLAIN 与 REPL 之间有什么区别 Plain评估模型在评估表达式之前一次性编译整个工作表 同时REPL评估模型在移动到下一个之前评估每个表达式 添加一个表达式REPL模式
  • JS Ajax调用PHP并获取ajax调用数据

    我有一个标准的 javascript ajax 调用 我将 data 设置为 json 数据 ajax type POST url BaseUrl User Login url BaseUrl User Limit 1 2 data api
  • 数组上“大于”(以及另一个不等式比较运算符)的行为

    我找不到任何描述或任何提及如何 gt lt lt and gt 在 JavaScript 中比较两个数组时运算符的行为 我能想到的唯一一件微不足道的事情是 两个数组通过每个相对索引的两个元素进行比较 但在测试之后 我没有得到我预期的结果 那
  • 将“分组”和“堆叠”组合在条形图中?

    我知道如何画一个groupedBAR 图和stackedBAR图如下 Y round rand 5 4 10 figure subplot 2 2 1 bar Y grouped title Group similar for hist h
  • 收到 ERR_INVALID_HTTP_RESPONSE 错误 laravel5 本地主机

    当我启动我的程序时我陷入困境拉拉维尔 5本地主机上的项目谷歌浏览器 我正在使用此存储库中的引导管理面板 https github com start laravel sb admin laravel 5 我安装了所有的需求 比如npm bo
  • sendTextMessage(电话号码, null, 消息, null, null);即使消息未发送,也始终返回成功

    我尝试使用短信活动这个链接但问题是它总是给出 消息已发送 如何知道消息是否真的发送了 这是代码 try SmsManager smsManager SmsManager getDefault smsManager sendTextMessa
  • IIS Express 过度缓存经典 ASP 页面

    我遇到了这个随机出现的问题 当我对 ASP 页面进行更改时 IIS Express 无法识别 它提供页面的先前版本 我可以通过重新编辑页面 进行一些小的更改 然后撤消更改并重新保存文件来解决此问题 但这很烦人 到目前为止 我只在经典 ASP
  • 在oracle SQL中计算没有日历表的工作日(包括日期之间的假期)

    好的 所以我已经阅读了大量关于在 sql 中模拟 excel 的网络日函数的可能性的文章 并得出结论 到目前为止最简单的解决方案是有一个日历表 该表将标记工作日或非工作日工作日 然而 由于我无法控制的情况 我们无法享受到如此奢侈的享受 而且
  • 如何使用 JavaScript 检测地址栏更改?

    我有一个 Ajax 密集型应用程序 可能有一个 URL 例如 http example com myApp page 1 当用户操作该网站时 地址栏可能会更改为类似的内容 http example com myApp page 5 无需重新
  • 从 floatbuffer 转换为 byte[]

    我正在尝试找到一种在java中使用jack audio的方法 我已经成功创建基于 jnajack 的包装器 以将音频从 jacks 的端口获取到 java 应用程序 原始 jnajack 不适用于 jack 1 9 8 但我找不到操作数据的
  • IE10 中等高列内的元素内容不是 100%

    对于我正在开发的应用程序 我需要等高的列 我选择使用 CSS 将我的列项目设置为表格的样式 这样每根柱子的高度确实是柱子高度中最大的 请参阅此处的示例 http jsfiddle net roelvd GXe9m 现在每个浏览器中每列的高度
  • 浮点处理器非确定性?

    在不涉及不必要的细节的情况下 基于相同的输入 浮点数 x86 64 上的运算是否有可能返回其结果的微小变化 哪怕有一点点不同 我正在模拟一个基本混沌的系统 我希望数据的微小变化会产生明显的影响 然而我预计 使用相同的数据 程序的行为将被修复