F#中的基数为2的对数

Jon*_*ats 2 f#

F#语言具有计算自然对数的函数log和计算基数10对数的log10.

在F#中计算基数2对数的最佳方法是什么?

Gus*_*Gus 10

使用 System.Math.Log(number, base)

例:

open System
Math.Log(32., 2.)
val it : float = 5.0
Run Code Online (Sandbox Code Playgroud)

  • @JoachimIsaksson,实际上 Log(double, double) 的 MS 实现完全按照您在答案中所说的那样。 (2认同)

Joa*_*son 6

你可以简单地使用"b的a-对数"= ln(b)/ ln(a)这一事实,即x的2对数是ln(x)/ ln(2).

log2(8)  = ln(8)  / ln(2) = 3
log2(32) = ln(32) / ln(2) = 5 
Run Code Online (Sandbox Code Playgroud)

... ln无论是自然对数还是log10,都可以使用对数.