【发布时间】:2015-11-04 10:18:44
【问题描述】:
在计算给定精度的 Pi 近似值时遇到问题。我已经得出结论,无限循环问题是由我的循环退出条件引起的,但是我不知道确切的问题是什么。在我看来,退出条件应该类似于
abs(current_aproximation - previous_approximation) < precision
代码如下:
let pi(prec) =
let rec loop(curr, prev) =
if(abs_float( (2. /. curr) -. (2. /. prev) ) < prec) then // problematic line
(2. /. curr)
else
loop(curr *. sqrt(2. +. curr) /. 2., curr)
in loop(sqrt(0.5), 1.);;
感谢您提供解决问题的任何提示。
【问题讨论】:
标签: ocaml pi approximation