底の変換計算機
ln や log10 だけでなく、どの底でも対数を求められます。底10での1000の対数は3で、ln 1000 を ln 10 で割って求めます。2つの自然対数も表示されるので、途中の式をそのまま書き写せます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 値
- 1,000
- 底
- 10
- 対数
- 3
- ln の値
- 6.907755279
- 底の ln
- 2.302585093
任意の底で対数を計算
底の変換公式とは何か、いつ必要になるのか
対数は「この底を何乗すればこの値になるか」という問いに答えるものです。答えは 1 以外の任意の正の底に対して存在しますが、実際に直接計算できる場面は稀です。関数電卓には ln と log10 のキーしかなく、JavaScript、Python、C の標準ライブラリーも同じ 2 つしか公開していません。
底の変換公式はその隙間を埋めます。底が電卓ではなく問題によって決まる場合に必要になります。情報理論のビットは底 2、音程も底 2、pH やデシベルは底 10、連続的な成長は底 e を使います。
毎回公式を調べて手で割り算する代わりに、ここに値と底を送信すれば、その恒等式どおりに計算された対数が、2 つの自然対数とともに返ってくるため、導出過程を検証できます。底の変換公式は近似ではなく厳密な恒等式であり、関与する数値誤差は通常の浮動小数点の丸めだけです。
計算の仕組みと表示される内容
対数を求めたい数値である value と、対数の底である base です。どちらも有限の数値である必要があり、"0.5" や "1e3" のような数値文字列も受け付けられます。実数では 0 や負の数の対数は定義されないため、値は厳密に 0 より大きい必要があります。
底も厳密に 0 より大きく、1 であってはなりません。1 の何乗も 1 のままなので、底 1 の対数は意味を持たないため除外されています。入力が検証を通過すると、コードは値と底の自然対数を計算し、前者を後者で割り、値、底、結果の対数、2 つの中間自然対数、そして公式そのものを文字列として含むオブジェクトを返します。
例えば底 2 で 8 の対数を求めると結果は 3 で、ln(8) ≈ 2.07944154168 と ln(2) ≈ 0.69314718056 が一緒に返るため、学生は完全な計算過程を課題に転記でき、エンジニアは手計算と照合してパイプラインを検証できます。
実用的な用途、料金、決定性
底の変換は数学の授業以外のさまざまな場面に登場します。情報理論では底 2 の対数でエントロピーをビット単位で測り、金融や生物学の倍加時間の問題では増殖率が定める底で指数を解き、アルゴリズム解析では底が異なっても定数倍しか違わないことを踏まえて増加率を比較しますが、これ自体が底の変換です。この機能は意図的に小さく決定的に作られています。
同じ入力は常にバイト単位で同一の出力を生み、ネットワーク呼び出しも時計も乱数も関与せず、結果は有効数字 12 桁に丸められるため機械間で安定しています。同一のコード、同一の数値です。
活用例
情報理論のための底 2 の対数を計算する
ln や log10 のキーでは直接求められない、エントロピーや情報量(ビット)の計算のために、確率や個数の log2 を取得します。
宿題で計算過程を示す
返された ln(value) と ln(base) を課題に転記して、最終答えだけでなく底の変換公式を実証します。
倍加・半減の問題を解く
問題が与える底で対数を取り、成長率や減衰率に必要な期間の数を求めます。
よくある質問
なぜ底 1 は拒否されるのですか?
1 の何乗も 1 のままなので、底 1 の対数には意味のある答えがないためです。
自然対数や常用対数も計算できますか?
はい。 底として e(2.718281828459045)または 10 を渡してください。どの場合も公式は同じです。
結果の精度はどのくらいですか?
プラットフォームの倍精度 Math.log を使用し、有効数字 12 桁に丸めるため、結果は機械間で安定し再現可能です。
1より小さい底も使えますか?
はい。0より大きく1でない底なら、2分の1のような分数の底でも計算できます。底がちょうど1のときだけは、何乗しても1のままなので使えません。
底2の対数はどんな場面で使われますか?
情報理論でビット数を測るときや、音楽の音程を表すときに使われます。2倍になるまでの時間を求める問題でも、底2の対数がよく登場します。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/change-of-base \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":1000,"base":10}'const res = await fetch("https://api.kit.forhosting.com/math/change-of-base", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 1000,
"base": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/change-of-base",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 1000,
"base": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/change-of-base", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":1000,"base":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":1000,"base":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/change-of-base", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"value": 1000,
"base": 10
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.change_of_base",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
底の変換 API は、値と底から任意の底の対数を直接計算します。ほとんどの計算機やプログラミング言語は自然対数と常用対数(底 10)しか提供しないため、2、7、0.5、e² のような他の底では底の変換公式 log_base(value) = ln(value) / ln(base) を使う必要があります。このエンドポイントはまさにその公式を適用し、対数そのものだけでなく、除算に使った 2 つの自然対数も返すため、結果の数値だけでなく計算の全過程を確認できます。ブラウザーで無料で実行されるコードは、1 リクエスト $0.002 の有料 API の背後で動くものと同一の決定的なコードです。
底の変換公式とは何か、いつ必要になるのか
log_base(value) は ln(value) を ln(base) で割ったものに等しく、両辺で log10 を使っても同様に成り立ちます。
計算の仕組みとレスポンスの内容
このエンドポイントは 2 つのフィールドを受け付けます。無効な入力は明確な invalid_input エラーで拒否され、課金されることはありません。
実用的な用途、料金、決定性
API を動かしているのと同じモジュールがこのページのブラウザーで無料で動作するため、無料のウェブ結果は有料 API が返すものと完全に同じです。課金されるのはご自身のソフトウェアから自動化する場合だけで、1 リクエスト $0.002 です。バッチ処理では値と底のペアごとに 1 リクエストを送信してください。この処理は十分に安価なので、大規模なバッチでも数セント未満で済みます。
技術的な質問
料金はいくらですか?
API 経由では 1 リクエスト $0.002 です。このページのブラウザーでは同一の結果で無料で実行できます。
どのような入力が有効ですか?
正の有限の値と、正・有限で 1 に等しくない底です。JSON の数値に加えて数値文字列も受け付けられます。
無効な入力の場合はどうなりますか?
どのフィールドが誤っていて何が期待されていたかを説明する invalid_input エラーが返ります。無効なリクエストは一切課金されません。