「y = log_a(x)」の3つの値(底a・真数x・対数の値y)のうち、わかっている2つを入力して「計算する」を押してください。空欄にした残りの1つを計算します。下の数式は入力欄と連動していて、底・真数・対数の値の部分を直接書き換えても計算できます。
このページでできること
- 対数 \(y = \log_a x\) の 底 \(a\)・真数 \(x\)・対数の値 \(y\) のうち、わかっている2つを入れるだけで残りの1つがその場でわかります
- 底は自由に指定できます。底に「10」を入れれば常用対数、「e」と入力すれば自然対数(\(\ln\))も計算できます
- \(\log_2 8 = 3\) のような対数の値だけでなく、「2を10乗するといくつ?」(真数の逆算、\(2^{10} = 1024\))や「4乗すると81になる数は?」(底の逆算)も求められます
- 式のやさしい解説・Excel/Googleスプレッドシート/Python用のコピペ数式・計算ドリル(演習問題)もこのページにまとまっています
この計算は何の役に立つ?
音の大きさの単位デシベルは、音のエネルギーの比の常用対数で定義されています。エネルギーが100倍になっても、デシベルでは \(10 \times \log_{10} 100 = 20\)(dB)しか増えません。
人間の耳は「何倍になったか」で音を感じるため、対数の単位がぴったり合うのです。イヤホンの音量の目安も、夜間の騒音基準(住宅地でおよそ45dB以下)も、この対数の式の上に成り立っています。
マグニチュードは地震のエネルギーの対数をもとに定められていて、Mが1大きくなるとエネルギーは約32倍(\(10^{1.5}\) 倍)になります。つまりM7の地震はM5の約1000倍のエネルギーです。
「数字が2しか違わない」ではなく「桁が3つ違う」と読めるかどうかは対数を知っているかどうかで決まり、災害の備えの感覚に直結します。
水溶液の酸性度を表すpHは、水素イオン濃度の常用対数(\(\mathrm{pH} = -\log_{10}[\mathrm{H}^+]\))で定義されています。pH2のレモン汁とpH7の水では、濃度の差は「5」ではなく \(10^5\)(=10万)倍です。
桁違いに幅のある量を0〜14程度の扱いやすい数に直す——これが対数の得意技で、洗剤や温泉、土づくりのpH表示すべてに使われています。
年利3%の複利で運用すると、元本が2倍になるのは \(1.03^y = 2\) を解いて \(y = \log_{1.03} 2 \fallingdotseq 23.4\) 年です(利回りが毎年一定と仮定した場合)。
「72 ÷ 金利(%) ≒ 2倍になる年数」で知られる「72の法則」も、実はこの対数計算の近似です。教育資金や老後資金など、人生の長期のお金の計画を感覚ではなく数字で立てる土台になります。
\(n\) 通りのものを区別するのに必要なビット数は \(\log_2 n\) で求まります。例えば256通りの値は \(\log_2 256 = 8\) ビット(=1バイト)で表せます。
パスワードの強さ(総当たりに必要な試行回数の規模)も「何ビット相当か」という対数で見積もられていて、情報化社会の土台を支えている計算です。
ピアノの隣り合う鍵盤(半音)の周波数比は \(2^{1/12} \fallingdotseq 1.0595\) 倍で統一されていて(平均律)、2つの音の周波数の比を \(r\) とすると、その間の半音の数は \(12 \times \log_2 r\) で求まります。
440Hzのラと880Hzのラなら \(12 \times \log_2 2 = 12\) 半音=ちょうど1オクターブ。楽器のチューニングや音楽ソフトのピッチ変換は、この対数計算で動いています。
式
用語・記号の解説
記号
| \(\log_a x\) | ログ・エー・エックス | 「\(a\) を底とする \(x\) の対数」。底 \(a\) を何乗すると真数 \(x\) になるか、を表す数です。(例:\(\log_2 8 = 3\)) |
| \(a\) | エー(底) | 対数の「土台」になる数。\(\log_a x\) の下付きの小さい数です。1以外の0より大きい数だけが使えます(底の条件)。 |
| \(x\) | エックス(真数) | 対数の中身の数。0より大きい数だけが使えます(真数条件)。 |
| \(y\) | ワイ(対数の値) | 対数の計算結果。「底を \(y\) 乗すると真数になる」という指数の値そのものです。 |
| \(\log_{10} x\) | ログ・じゅう・エックス(常用対数) | 底が10の対数。桁の感覚と直結していて(\(\log_{10} 1000 = 3\))、理科や工学で広く使われます。文脈によっては底を省略して \(\log x\) と書かれます。 |
| \(\ln x\) | エル・エヌ(自然対数) | 底がネイピア数 \(e\) の対数。微分積分と相性がよく、数学・物理・金融で標準的に使われます。 |
| \(e\) | イー(ネイピア数) | 約2.71828…と無限に続く特別な数。自然対数の底です。この計算機では底の欄に「e」と入力すると使えます。 |
| \(M,\ N\) | エム、エヌ | 対数の計算法則(積・商・累乗)の説明で使う真数。どちらも0より大きい数です。 |
| \(\sqrt[n]{x}\) | エックスのエヌ乗根 | \(n\) 乗すると \(x\) になる数。\(x^{1/n}\)(\(n\) 分の1乗)と同じ意味です。(例:\(\sqrt[4]{81} = 3\)) |
用語
| 対数 | たいすう | 「底を何乗すると真数になるか」を表す数。累乗(べき乗)の逆の操作で、高校の数学IIで学びます。英語では logarithm(ロガリズム)で、記号の log はその略です。 |
| 底 | てい | 対数の「土台」になる数。\(\log_2 8\) なら2が底です。1以外の0より大きい数だけが底になれます。 |
| 真数 | しんすう | 対数の中身の数。\(\log_2 8\) なら8が真数です。0より大きい数だけが真数になれます。 |
| 真数条件 | しんすうじょうけん | 真数は0より大きくなければならない、という決まり。正の数を何乗しても結果は必ず正の数なので、0や負の数になる対数は存在しません。方程式や不等式を対数で解くときに真っ先に確認する条件です。 |
| 底の条件 | ていのじょうけん | 底は「1以外の0より大きい数」でなければならない、という決まり。1は何乗しても1のままで対数が定まらず、0や負の数は指数によって値が定義できないためです。 |
| 常用対数 | じょうようたいすう | 底が10の対数。数の桁数と直結しているのが特長で、pHやデシベル、マグニチュードなど身の回りの対数はほとんどが常用対数です。 |
| 自然対数 | しぜんたいすう | 底がネイピア数 \(e\)(約2.718)の対数。記号は \(\ln\) です。微分積分で一番扱いやすい対数で、利息の計算や自然現象の分析に使われます。 |
| ネイピア数 | ねいぴあすう | \(e = 2.71828\cdots\) と無限に続く数。「連続的な成長」を表すときに自然に現れる数学の重要な定数で、円周率 \(\pi\) と並ぶ有名な無理数です。 |
| 累乗 | るいじょう | 同じ数を何回も掛け合わせる計算。\(2^3 = 2 \times 2 \times 2\) のように右上に小さく書いた数(指数)が掛ける回数を表します。対数は累乗の逆の操作です。 |
| 指数 | しすう | 累乗の右上に小さく書く「何乗するか」の数。\(2^3\) の3が指数です。対数の値は「指数を求めたもの」といえます。 |
| 底の変換公式 | ていのへんかんこうしき | どんな底の対数も「真数の対数 ÷ 底の対数」に書き換えられる公式。電卓やプログラムに \(\ln\) と \(\log_{10}\) しかなくても、この公式で任意の底の対数が計算できます。 |
| 累乗根 | るいじょうこん | \(n\) 乗するとその数になる数(\(n\) 乗根)。「4乗すると81になる数は3」のように、底の逆算はこの累乗根を求める計算です。 |
前提として理解しておくといいこと
このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
つまずいたら、この表の内容に戻って復習するのが近道です。
| 累乗・指数(中学1年) |
|
| 指数の拡張(高校 数学II) |
|
| 平方根・累乗根(中学3年〜高校 数学II) |
|
| 逆の操作という考え方(小学校〜中学) |
|
Excelで計算する方法
| 真数 x | 100 |
| 底 a | 10 |
| 対数の値 y | =LOG(B1,B2) |
| 底 a | 2 |
| 対数の値 y | 10 |
| 真数 x | =B1^B2 |
| 真数 x | 81 |
| 対数の値 y | 4 |
| 底 a | =B1^(1/B2) |
| 真数 M | 4 |
| 真数 N | 25 |
| Mの対数 + Nの対数(底10) | =LOG(B1,10)+LOG(B2,10) |
| 積 M×N の対数(底10) | =LOG(B1*B2,10) |
| 真数 M | 1000 |
| 真数 N | 10 |
| Mの対数 − Nの対数(底10) | =LOG(B1,10)-LOG(B2,10) |
| 商 M÷N の対数(底10) | =LOG(B1/B2,10) |
| 真数 M | 2 |
| 指数 k | 10 |
| k ×(Mの対数)(底10) | =B2*LOG(B1,10) |
| 累乗 M^k の対数(底10) | =LOG(B1^B2,10) |
ExcelのLOG関数は「=LOG(真数, 底)」の形で使います(底を省略すると常用対数=底10になります)。自然対数(底e)は「=LN(真数)」です。
例えば1つ目の表なら、B3に 2 と表示されます(10を2乗すると100だからです)。自然対数を計算したいときは、1つ目の表のB3を「=LN(B1)」に書き換えてください。
4〜6つ目の表は対数の計算法則の確認用で、上下2つの数式が必ず同じ値になります。
Googleスプレッドシートで計算する方法
| 真数 x | 100 |
| 底 a | 10 |
| 対数の値 y | =LOG(B1,B2) |
| 底 a | 2 |
| 対数の値 y | 10 |
| 真数 x | =B1^B2 |
| 真数 x | 81 |
| 対数の値 y | 4 |
| 底 a | =B1^(1/B2) |
| 真数 M | 4 |
| 真数 N | 25 |
| Mの対数 + Nの対数(底10) | =LOG(B1,10)+LOG(B2,10) |
| 積 M×N の対数(底10) | =LOG(B1*B2,10) |
| 真数 M | 1000 |
| 真数 N | 10 |
| Mの対数 − Nの対数(底10) | =LOG(B1,10)-LOG(B2,10) |
| 商 M÷N の対数(底10) | =LOG(B1/B2,10) |
| 真数 M | 2 |
| 指数 k | 10 |
| k ×(Mの対数)(底10) | =B2*LOG(B1,10) |
| 累乗 M^k の対数(底10) | =LOG(B1^B2,10) |
表を丸ごとコピーしてA1セルに貼り付け、入力欄の数値を自分の値に書き換えてください。
Pythonで計算する方法
import math
x = 100 # 真数(0より大きい数)
a = 10 # 底(1以外の0より大きい数。自然対数なら math.e)
y = math.log(x, a) # 対数の値 y = log_a(x)
print(f"底{a}のときの{x}の対数: {y}")
# 常用対数(底10)・自然対数(底e)には専用の関数もあります
print(f"常用対数 log10({x}) = {math.log10(x)}")
print(f"自然対数 ln({x}) = {math.log(x)}")
# 逆算もできます
true_number = a ** y # 真数を求める(底を y 乗する)
base_number = x ** (1 / y) # 底を求める(真数を 1/y 乗する)
print(f"真数: {true_number}, 底: {base_number}")
数式記述言語(LaTeX等)での書き方(コピペ可)
y = logₐ x ⇔ x = aʸ
y = \log_{a} x \iff x = a^{y}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>y</mi>
<mo>=</mo>
<msub><mi>log</mi><mi>a</mi></msub>
<mi>x</mi>
<mo>⇔</mo>
<mi>x</mi>
<mo>=</mo>
<msup><mi>a</mi><mi>y</mi></msup>
</mrow>
</math>
y = log_a x iff x = a^y
Log[a, x]
y := log[a](x);
y = log(x)/log(a);
y = log_a(x)
logₐ x = ln x ÷ ln a
\log_{a} x = \dfrac{\ln x}{\ln a}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>log</mi><mi>a</mi></msub>
<mi>x</mi>
<mo>=</mo>
<mfrac>
<mrow><mi>ln</mi><mo>⁡</mo><mi>x</mi></mrow>
<mrow><mi>ln</mi><mo>⁡</mo><mi>a</mi></mrow>
</mfrac>
</mrow>
</math>
log_a x = (ln x)/(ln a)
Log[x]/Log[a]
y := ln(x)/ln(a);
y = log(x)/log(a);
log_a(x) = ln(x)/ln(a)
a = x^{1/y}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>a</mi>
<mo>=</mo>
<msup>
<mi>x</mi>
<mrow><mn>1</mn><mo>/</mo><mi>y</mi></mrow>
</msup>
</mrow>
</math>
a = x^(1/y)
x^(1/y)
a := x^(1/y);
a = x^(1/y);
a = x^(1/y)
logₐ(MN) = logₐ M + logₐ N
\log_{a} MN = \log_{a} M + \log_{a} N
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>log</mi><mi>a</mi></msub>
<mrow><mi>M</mi><mi>N</mi></mrow>
<mo>=</mo>
<msub><mi>log</mi><mi>a</mi></msub>
<mi>M</mi>
<mo>+</mo>
<msub><mi>log</mi><mi>a</mi></msub>
<mi>N</mi>
</mrow>
</math>
log_a (MN) = log_a M + log_a N
Log[a, M*n] == Log[a, M] + Log[a, n] (* N(数値化関数)はMathematicaの予約語のため n にしている *)
log[a](M*N) = log[a](M) + log[a](N);
log(M*N)/log(a) == log(M)/log(a) + log(N)/log(a)
log_a(MN) = log_a(M) + log_a(N)
logₐ(M ÷ N) = logₐ M − logₐ N
\log_{a} \dfrac{M}{N} = \log_{a} M - \log_{a} N
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>log</mi><mi>a</mi></msub>
<mfrac><mi>M</mi><mi>N</mi></mfrac>
<mo>=</mo>
<msub><mi>log</mi><mi>a</mi></msub>
<mi>M</mi>
<mo>−</mo>
<msub><mi>log</mi><mi>a</mi></msub>
<mi>N</mi>
</mrow>
</math>
log_a (M/N) = log_a M - log_a N
Log[a, M/n] == Log[a, M] - Log[a, n] (* N(数値化関数)はMathematicaの予約語のため n にしている *)
log[a](M/N) = log[a](M) - log[a](N);
log(M/N)/log(a) == log(M)/log(a) - log(N)/log(a)
log_a(M/N) = log_a(M) - log_a(N)
logₐ(Mᵏ) = k logₐ M
\log_{a} M^{k} = k \log_{a} M
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>log</mi><mi>a</mi></msub>
<msup><mi>M</mi><mi>k</mi></msup>
<mo>=</mo>
<mi>k</mi>
<msub><mi>log</mi><mi>a</mi></msub>
<mi>M</mi>
</mrow>
</math>
log_a (M^k) = k log_a M
Log[a, M^k] == k*Log[a, M]
log[a](M^k) = k*log[a](M);
log(M^k)/log(a) == k*log(M)/log(a)
log_a(M^k) = k log_a(M)
ChatGPT に聞いて計算してもらう方法
あなたは対数計算のアシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。 次の値をそれぞれ求めてください。 1. 底10、真数100の対数(log10(100)) 2. 真数7の自然対数(ln 7) 3. 底2で対数の値が10のときの真数(2の10乗) 4. 4乗すると81になる数(真数81、対数の値4のときの底) 計算に使った式と、実行結果の数値を示してください。
計算ドリル(演習問題)
このページの式を、自分の手で計算できるようになるための演習問題です。
答えと解説は解答ページにあります。
使い方
-
1数値を入力計算したい数値を入力欄に入力します
-
2計算「計算する」ボタンを押します
-
3結果を確認計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
DataChefの特徴
専門知識不要、直感的で簡単な操作
個人情報を登録することなく使用できます
「ダウンロード」押下でファイルを自動削除
クレジット表記不要
商用利用許諾の連絡も不要です
