精确/不精确的结果,如sqrt和整数根

时间:2014-12-30 12:05:31

标签: scheme r6rs inexact-arithmetic

R6RS 3.4 Implementation requirements读取

  

......当应用于精确时,sqrt等潜在的不精确操作   参数,应尽可能产生确切的答案(例如   精确4的平方根应该是精确的2)。

(1)这是否意味着(* 0 2.2)必须产生0.0但不会产生0结果?

  

但是,这个   不需要。 ...

(2)这是否意味着(/ 4 2)也可能产生2.0结果?

(3)是否有以这种方式提供整数根的实现?我如何获得整数平方根的功能? (这是index)(请不要递归/迭代实现)

1 个答案:

答案 0 :(得分:2)

R6RS有exact-integer-sqrt。它返回两个值,平方根和余数。如果需要,可以丢弃第二个值。

允许(但不要求)实现将(* 0 x)(将任何东西乘以精确的零)视为任何x的精确零。请参阅*程序的R6RS description