【发布时间】:2012-01-24 16:48:39
【问题描述】:
我们可以编写一个简单的有理数类,使用两个整数表示 A/B,其中 B != 0。
如果我们要表示一个无理数类(存储和计算),我首先想到的是使用浮点数,即使用 IEEE 754 标准(二进制小数)。这是因为无理数必须近似。
除了使用二进制分数之外,还有其他写无理数类的方法(无论它们是否节省内存空间)?
我用Python研究了jsbeuno的解决方案:Irrational number representation in any programming language?
他仍在使用内置的浮点数进行存储。
这不是家庭作业。
感谢您的宝贵时间。
【问题讨论】:
-
B可以使用 2 的幂来表示任何 IEEE 浮点数。 -
但这不是已经是 754(即使我们出于疯狂的原因将 A 存储为整数......)?由于小数部分将转换为 2 的幂(负)?
-
一旦你将它们表示在内存中,你打算如何处理这些数字?选择正确的解决方案几乎完全取决于您对这个问题的回答。