如何计算Racket中的非自然对数?

时间:2013-02-07 01:15:20

标签: lisp scheme racket

我知道racket的log函数,它计算数字的自然对数。我试图找到数字的对数提升到任意基数。换句话说,而不是:

> (log 9)
2.1972245773362196

我想做类似的事情:

> (logarithm 3 9)
2

是否有任何人都知道内置于Racket或者PLaneT模块中可用的功能我可以这样使用吗?

2 个答案:

答案 0 :(得分:15)

使用math:log k n = ln n / ln k:

(/ (log 9) (log 3))

答案 1 :(得分:3)

Racket 6.9.0.1为任意基础添加了第二个参数。 log k n现在可以写成(log n k)

根据文档,这相当于(/ (log n) (log k)),但可能更快。

log entry in the documentation.