【发布时间】:2011-02-13 12:00:01
【问题描述】:
我刚开始玩 GHCi。我看到列表生成器基本上解决了给定集合中的方程:
Prelude> [x | x <- [1..20], x^2 == 4]
[2]
(按预期只找到一个根)
现在,考虑到解 包含在指定范围内,为什么我不能求解结果为 ℝ 的方程?
[x | x <- [0.1,0.2..2.0], x*4 == 2]
如何在实数集中求解此类方程?
编辑:对不起,我的意思是0.1,当然。
【问题讨论】:
-
啊,“R”是指实数,而不是语言 R!不幸的是,没有办法在两个数字(或所有浮点数)之间生成 R 的所有成员的集合,这将是一个非常大的集合。
-
@Andrew... 比难以置信的大 :-) 我们不要再隐藏他的真相了:在 0.001 和 0.01 之间有 无限 实数值。无限的。不仅仅是一个密封的宇宙所能容纳的数量惊人的大量粒子。 :)
-
值得注意的是:像你给出的简单的列表推导式可以简单地写成
filter ((==2).(*4)) xs -
@Stephane... 我的意思是,在特定大小(例如 64 位)的 0 和 2 之间有非常多(但有限)的可表示浮点数。跨度>
标签: haskell math list-comprehension precision equation-solving