ホーナー法計算機
2x³ − 6x² + 2x − 1 の x が3のときの値は5で、途中の値(2、0、2、5)もすべて表示されるので、手書きのホーナー表と照らし合わせられます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 係数
- 2, -6, 2, -1
- X
- 3
- 値
- 5
- 組立除法の係数
- 2, 0, 2, 5
- 次数
- 3
ホーナー法計算機は、各べき乗を個別に求めず、係数から多項式を評価します。係数を次数の高い順に入力し、評価点 x を指定してください。最終的な値に加え、入れ子の乗算で得られるすべての中間係数を返します。そのため、計算過程の確認、授業での説明、再現、別システムとの照合が容易です。有限数による決定的な算術だけを使用し、ネットワーク通信は行いません。定数多項式から長い密な係数列まで、同じアルゴリズムで処理します。
多項式を欠けのない係数列で表します
まず、多項式を x の次数が高い順に並べます。2x の3乗から 6x の2乗を引き、2x を足して 1 を引く式なら、[2, -6, 2, -1] を送信します。位置そのものに意味があるため、欠けている次数には必ず 0 を入れてください。
たとえば x の3乗プラス 5 は [1, 0, 0, 5] であり、[1, 5] ではありません。先頭は最高次の係数、末尾は常に定数項です。要素が1個だけの列も有効で、次数 0 の定数多項式を表します。
空文字列、数値に見える文字列、無限大、数値でない値は自動変換せず拒否します。処理量を予測可能に保つため長さには上限がありますが、計算量は線形で、先頭以外の各係数につき乗算と加算を1回ずつ行うだけです。文書化された別名も使えますが、標準名のほうが連携コードを明確にできます。
この表現なら指数や符号の構文を解析する必要もありません。
入れ子の乗算と中間係数を追跡します
ホーナー法は、多項式の各べき乗を別々に計算しない形へ式を書き換えます。最初に最高次係数を第1の累積値として下ろします。その値に x を掛け、次の係数を足して結果を保存します。
定数項まで同じ操作を繰り返してください。[末尾の要素が多項式の値であり、利用しやすいよう value にも同じ値を返します。列の長さは入力と完全に一致するため、手書きの表の各段階と対応させられます。
この処理は、選んだ点を r とした x - r による組立除法とも関係します。最後以外は商の係数、最後は余り、つまり p(x) です。本機能は評価過程を示しますが、一般の多項式除算、記号因数分解、根の探索は行いません。
授業やソフトウェアで安全に活用します
簡単な確認では、ブラウザーのツールを実行し、返された過程を手書きのホーナー表と比較してください。計算には JavaScript の倍精度浮動小数点を使用します。通常の教育、科学、工学データには適しますが、非常に大きな値や条件の悪い多項式では丸め誤差が増幅される場合があります。
重要な計算では入力を尺度調整するか、多倍長精度をお使いください。ネットワーク、乱数、保存状態、時刻に依存しないため、同じ有効入力からは常に同じ出力が得られます。
活用例
代数の課題を確認する
学習者のホーナー表と返された列を比較し、多項式の最終値を確認できます。
段階式の教材を作成する
中間係数を順番に示し、誤りが生じた演算を正確に特定できます。
よくある質問
係数はどの順番で入力しますか?
最高次係数から定数項まで次数の高い順に並べ、欠けている次数には 0 を入れてください。
組立係数とは何ですか?
ホーナー法の累積値です。先頭は最高次係数で、以後は直前の値に x を掛けて次の係数を足します。
最後の係数が値になるのはなぜですか?
最後の乗算と加算で定数項まで取り込むと入れ子式が完成し、その累積値が p(x) になるためです。
定数多項式も評価できますか?
はい。 要素1個の係数列は次数 0 で、唯一の中間係数が任意の有限な x における値です。
多項式に x のべき乗が抜けているときは何を入力しますか?
その位置に0を入力してください。各位置が1つのべき乗に対応するためです。x³ + 5 なら係数は 1, 0, 0, 5 で、1, 5 ではありません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/algebra/horner-method \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"coefficients":[2,-6,2,-1],"x":3}'const res = await fetch("https://api.kit.forhosting.com/algebra/horner-method", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"coefficients": [
2,
-6,
2,
-1
],
"x": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/algebra/horner-method",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"coefficients": [
2,
-6,
2,
-1
],
"x": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/algebra/horner-method", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"coefficients":[2,-6,2,-1],"x":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"coefficients":[2,-6,2,-1],"x":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/algebra/horner-method", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"coefficients": [
2,
-6,
2,
-1
],
"x": 3
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "algebra.horner_method",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
多項式を欠けのない係数列で表します
各係数と評価点は有限の JSON 数値でなければなりません。
入れ子の乗算と中間係数を追跡します
2, -6, 2, -1] を x = 3 で評価する場合、列は 2 から始まり、2 かける 3 ひく 6 へ進み、新しい結果を次の段階で再利用します。応答では、この完全な列を synthetic_coefficients と呼びます。
授業やソフトウェアで安全に活用します
自動化する場合は、同じ係数列と評価点を API に送信します。成功した1件の料金は $0.002 です。応答には value、synthetic_coefficients、degree、x、手法識別子が含まれるため、答えだけでなく説明に必要な中間情報も保存できます。段階的にヒントを示す教材、手順の誤りと最終回答の誤りを区別する採点システム、小さく安定した JSON 契約を必要とする数値処理に適しています。演算が有限範囲を超えた場合は、表現不能な JSON を返さず明確なエラーにします。
連携の活用例
ソフトウェアで係数を評価する
記号代数ライブラリを追加せず、決定的な JSON 応答を利用できます。
技術的な質問
API での計算料金はいくらですか。
成功した API 項目1件につき $0.002 です。ブラウザーでは無料で実行できます。