Как рассчитать лог числа с помощью bc? - PullRequest
41 голосов
/ 01 ноября 2011

Это первый раз, когда я использую bc. Я хочу рассчитать журнал (база 10) числа. Как мне это сделать?

Ответы [ 7 ]

62 голосов
/ 01 ноября 2011

Вызвать bc с параметром -l (для включения математической библиотеки), например, так:

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

Используйте функцию l, которая является натуральным логарифмом. Возьмите логарифм числа, которое вас интересует, затем разделите на натуральный логарифм 10.

38 голосов
/ 01 ноября 2011

логарифм x по отношению к основанию b может быть вычислен с учетом любой логарифмической функции для произвольной базы k - это на самом деле довольно круто!

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)

и -l в bc включает математическую библиотеку

, вот почему это работает:

# bc -l
l(100) / l(10)
2.00000000000000000000
5 голосов
/ 01 ноября 2011

Если вы запускаете bc с переключателя -l, то есть функция l(), которая вычисляет натуральный логарифм аргумента.

2 голосов
/ 14 июля 2017

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 голосов
/ 25 августа 2013

Постер специально запрашивает журнал 10.

У меня есть 1.06.95 до н.э. на Ubuntu 12.10.«l (x)» в этой версии BC не является основанием 10. Это натуральный логарифм (основание e).Это подтверждается здесь, и BC некоторое время работал таким образом:

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

Я подозреваю, что вам нужно, чтобы база 10 журналов работала, это расширение BC:

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

Не уверен, что это правильный способ установки, и возникли ошибки при попытке опубликовать его здесь.

ДоминикЛюк Уэбб

1 голос
/ 01 ноября 2011
bc -l

l(____) 

(заполните там свой номер)

Я нашел учебники по адресу:

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

и

http://unix -simple.blogspot.com / 2006/10 / брать корни с помощью unix-basic.HTML

0 голосов
/ 20 июля 2017

Python может пригодиться для этого как,

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

Надеюсь, это поможет!

...