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

Ale*_*lex 5 lisp scheme racket

我知道球拍的log功能,它计算数字的自然对数.我试图找到数字的对数提升到任意基数.换句话说,而不是这样:

> (log 9)
2.1972245773362196
Run Code Online (Sandbox Code Playgroud)

我想做类似的事情:

> (logarithm 3 9)
2
Run Code Online (Sandbox Code Playgroud)

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

nne*_*neo 15

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

(/ (log 9) (log 3))
Run Code Online (Sandbox Code Playgroud)

  • `(expt b(*xy))`相当于`(expt(expt bx)y)`.由于对数是取幂的倒数,这就解释了为什么公式有效.这是35年前我接受它的高中代数. (5认同)

Kis*_*Hiu 4

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

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

记录文档中的条目。