web-dev-qa-db-ja.com

bcを使用して数値のログを計算するにはどうすればよいですか?

Bcを使用するのは初めてです。数値のログ(基数10)を計算したい。どうすればいいですか?

41
Bruce

-lオプション(数学ライブラリを有効にするため)を使用してbcを呼び出します

$ echo 'l(100)/l(10)' | bc -l
2.00000000000000000000

自然対数であるl関数を使用します。興味のある数値のログを取り、10の自然対数で割ります。

63
Ray Toal

任意の底kに対する対数関数が与えられた場合、底bに関するxの対数は計算できます。これは実際にはかなりクールです!

log_b(x) = log_k(x) / log_k(b)

例えば.

log_b(x) = ln(x) / ln(b)

b = 10の場合:

log_10(x) = ln(x) / ln(10)

bcの-lは数学ライブラリを有効にします

そのため、これが機能する理由は次のとおりです。

# bc -l
l(100) / l(10)
2.00000000000000000000
38
Tilo

_-l_スイッチでbcを開始すると、引数の自然対数を計算する関数l()があります。

ポスターは特にログ10を要求しました。

Ubuntu 12.10にbc 1.06.95があります。 BCのこのバージョンの「l(x)」は底10ではありません。これは自然対数(底e)です。これはここで確認され、BCはしばらくしてからこのように機能しています。

http://linux.about.com/od/commands/l/blcmdl1_bc.htm

ログベース10を機能させるために必要なのは、BC拡張機能だと思います。

http://x-bc.sourceforge.net/extensions_bc.html

これをインストールする正しい方法がわからず、ここに投稿しようとしてエラーが発生しました。

ドミニク・リュック・ウェッブ

2
dee

bcは、bcを使用する以外の方法または他の方法で対数を直接与えません。ln(x)のみを計算できます。したがって、他のベース対数を取得するには、いくつかのアイデンティティを覚えておくことが賢明です。基本的なものは-

log base 10 (x) = log base e (x) / log base e (10)

ここでは、さまざまな基本対数の例を示します-

totan@Home-Computer ~ $ bc -l
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 

l(8)/l(2)
3.00000000000000000002

l(1000)/l(10)
3.00000000000000000000

l(100000)/l(100)
2.50000000000000000000

l(100000)/l(10)
5.00000000000000000001

l(81)/l(3)
4.00000000000000000001

l(64)/l(4)
3.00000000000000000000

quit()
totan@Home-Computer ~ $ 

これがお役に立てば幸いです。

2
bc -l

l(____) 

(空欄に番号を記入してください)

チュートリアルを見つけました:

http://unix-simple.blogspot.com/2006/10/unix-basic-calculator.html

そして

http://unix-simple.blogspot.com/2006/10/taking-roots-with-unix-basic.html

1

Pythonはこのために便利です。

log3=$(python -c  'import math; print math.log(3)')

お役に立てば幸いです!

0
shahryar