![]() |
1
17
并不是大多数浮点实现都不同意,而是它们无法获得获得100%答案所需的准确度。正确的答案是他们不能。 π是一个无穷多的数字系列,除了符号表示,没有人能用其他任何东西来表示,e^x是相同的,因此达到100%准确度的唯一方法就是符号化。 |
![]() |
2
10
下面是我尝试过的实现和语言的简短列表。它按接近零的程度排序:
|
![]() |
3
7
有没有可能解决这个争端? 我的第一个想法是寻找一种象征性的语言,比如 Maple . 但我不认为这算是浮点数。 事实上,一个人如何代表 我 (或) J 对于工程师来说)用传统的编程语言? 也许一个更好的例子是sin()=0?(还是我又错过了这一点?) |
![]() |
4
5
我同意Ryan的观点,你需要换一个数字表示系统。解决方案超出了浮点数学的范围,因为您需要将pi表示为无限长的小数,所以任何有限精度方案都无法工作(至少不需要使用某种模糊因子来弥补丢失的精度)。 |
![]() |
5
5
我觉得你的问题有点奇怪,因为你似乎在暗示浮点数学是由语言实现的。这通常不是真的,因为fp数学是在硬件中使用浮点处理器完成的。但是软硬件,浮点永远是不准确的。浮球就是这样工作的。 如果您需要更好的精度,您需要使用不同的数字表示。就像对不适合整数或长整数的数字进行整数运算一样。有些语言有内置的库(我知道Java有BigTigand和BigDecimal),但是你必须明确地使用那些库而不是本地类型,而且性能会(有时显著)比使用浮点差。 |
![]() |
6
5
@ Ryan Fox 事实上,在传统编程语言中,如何表示i(或工程师的j)? 本机复杂数据类型远非未知。Fortran在60年代中期就已经拥有了它,并且OP展示了各种其他语言,在历史后续中支持它们。 复数可以作为库添加到其他语言中(通过运算符重载,它们甚至看起来像代码中的本机类型)。 但是除非你为这个问题提供了一个特殊的例子,“不一致”只是一个不精确的机器算法的表达,不是吗?就像抱怨那样
以(t)结束!=0)(至少如果使用足够笨的编译器) |
![]() |
7
4
我和我最好的朋友聊了很久,聊到无理数和其他数之间的差异。好吧,我们都同意这个不同的观点:
无理数是关系,作为函数,在某种程度上,是什么?好吧,想想“如果你想要一个完美的圆周率,给我一个完美的圆周率”,但是圆周率不同于其他的数字(4边,5,6…但是…你还有多少边,更像一个圆圈。如果你一直跟着我,把所有这些想法联系起来,这里是π公式:
所以,π是一个函数,但它永远不会结束!因为这个参数,但是我想你可以有一个π的“实例”,如果你把这个参数改成一个很大的整数,你会有一个很大的π实例。 和e一样,给我一个巨大的参数,我会给你一个巨大的e。 把所有的想法放在一起: 由于我们有内存限制,语言和libs为我们提供了大量无理数的实例,在本例中,pi和e,作为最终结果,您将有很长的时间获得0,就像@chris jester young提供的示例一样。 |
![]() |
8
3
在没有本机表示的语言中,通常使用oop添加它来创建
|
![]() |
9
3
数值分析告诉我们,你不能依赖于大数字之间微小差异的精确值。 这不仅影响这里讨论的方程,还可能带来不稳定性,从解一组近似奇异的联立方程,到找到多项式的零点,到计算对数(~1)或exp(~0)(我甚至看到了计算对数(x+1)和(exp(x)-1)的特殊函数来解决这个问题)。 我鼓励您不要考虑将差异归零(您不能),而是以确保最小误差的方式进行相关计算。 不好意思,我在大学已经有43年没听过这样的推荐信了,即使我能记住推荐信,我相信现在还有更好的东西。我建议 this 作为起点。 如果这听起来有点屈尊,我道歉。我的“数值分析101”是我化学课程的一部分,因为那时没有太多的化学物质。我对数值分析在现代计算机科学课程中的地位/重要性没有真正的感觉。 |
![]() |
10
3
这是我们当前浮点计算体系结构的一个限制。浮点运算只是一个数值极点的近似值,如e或pi(或任何超出位允许精度的数值)。我真的很喜欢这些数字,因为它们无视分类,而且似乎有更大的熵(?)甚至比素数,这是一个标准系列。比例挑战的数字表示,有时像这样简单的事情可以打击一个人的思想(我爱它)。 幸运的是,通过使用符号概念(类似于 Lasse V. Karlsen ) 考虑一个库/语言,它以机器能够理解的形式描述E和PI等概念。机器有什么完美圆的概念吗?可能不是,但我们可以创建一个满足所有已知特征的对象圆(恒定半径,半径与周长的关系为2*pi*r=c)。像π这样的物体只能用上述比例来描述。R&C可以是数字对象,可以用您希望赋予它们的任何精度来描述。e可以定义为“e是唯一的实数,这样函数f(x)=e x在x=0点的导数(切线的斜率)的值正好是1”,从 wikipedia . 有趣的问题。 |
|
Rik Bloemers · for循环不接受任何浮点变量 2 年前 |
![]() |
zell · 为什么存储7个浮点数需要34字节? 2 年前 |
![]() |
Atharva Sunil Sathe · 如何删除任意数的小数点? 3 年前 |
![]() |
user1658887 · 为什么**2!=a*a一些彩车? 6 年前 |