如何使用bc计算数字的对数?

Bru*_*uce 45 unix bc

这是我第一次使用bc.我想计算一个数字的对数(基数10).我怎么这样?

Ray*_*oal 67

bc使用-l选项调用(以启用数学库),就像这样

$ echo 'l(100)/l(10)' | bc -l
2.00000000000000000000
Run Code Online (Sandbox Code Playgroud)

使用l自然日志功能.记下您感兴趣的数字的对数,然后除以10的自然对数.

  • 很高兴看到有人在数学课上引起注意:) (6认同)
  • log_b(x)= log_k(x)/ log_k(b):-)给定任意对数k的任何对数函数,可以计算关于基数b的对数 (2认同)
  • 不要挑剔,但你应该真正使用 `bc -l <​​<<l(100)/l(10)`,至少你不用担心引用。 (2认同)
  • 不,单引号的变体是正确的('echo'...'`); 使用“这里字符串”(`<<<`)时,您是否需要担心引用问题(“这里字符串...进行大括号扩展,代字号扩展,参数和变量扩展,命令替换,算术扩展和引号删除。”) https://www.gnu.org/software/bash/manual/html_node/Redirections.html#Here-Strings (2认同)

Til*_*ilo 38

给定任意基数k的任何对数函数,可以计算x相对于基数b的对数 - 这实际上非常酷!

log_b(x) = log_k(x) / log_k(b)
Run Code Online (Sandbox Code Playgroud)

例如

log_b(x) = ln(x) / ln(b)
Run Code Online (Sandbox Code Playgroud)

如果b = 10:

log_10(x) = ln(x) / ln(10)
Run Code Online (Sandbox Code Playgroud)

和-l在bc中启用数学库

这就是为什么这样做的原因:

# bc -l
l(100) / l(10)
2.00000000000000000000
Run Code Online (Sandbox Code Playgroud)

  • +1用于解释Ray Toal答案中的数学概念= D. (3认同)

Ern*_*ill 5

如果你开始bc-l开关,然后有一个函数l(),计算其参数的自然对数。