連分数の近似分数
部分商3、7、15、1を入れると、近似分数3/1、22/7、333/106、355/113が得られ、どれも前のものよりπに近づきます。各段階は古典的な漸化式を正確な整数で計算します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 部分商
- 3, 7, 15, 1
- 数量
- 4
連分数は実数を整数の部分商の入れ子はしごとして表し、そのはしごを有限で打ち切ったものが近似分数(コンバージェント)です。分母が抑えられた最良の有理近似になります。本連分数近似分数計算機は空でない整数部分商のリストを受け取り、BigInt 中間値による古典的な二項漸化式を実行し、各近似分数について分子・分母・分数文字列・小数値を返します。
近似分数とは何か、漸化式の仕組み
a0 で打ち切ると最初の近似分数 h0/k0 = a0/1 が得られます。a1 で打ち切ると h1/k1 = (a1·a0 + 1)/a1 となり、以降の打ち切りは無限連分数のより良い有理近似を与えます。標準の線形漸化式はこの過程をまとめます。
初期値 h−2 = 0、h−1 = 1、k−2 = 1、k−1 = 0 とし、n を 0 から m まで hn = an·h(n−1) + h(n−2)、kn = an·k(n−1) + k(n−2) とします。
部分商が単純連分数を定義するとき各近似分数は既約であり、隣り合う近似分数は行列式恒等式 hn·k(n−1) − h(n−1)·kn = (−1)^(n−1) を満たします。
教科書の定番確認は π ≈ [3; 7, 15, 1] が 3/1、22/7、333/106、355/113 を与えること、および √2 のはしご [1; 2, 2, 2, …] が 1/1、3/2、7/5、17/12、41/29 を与えることです。
連分数の近似分数が役立つ場面
代数・整数論の授業では π・e・二次無理数の最初の近似分数を手計算させます。決定論的オラクルがあれば宿題チェッカーや LMS プラグインが浮動小数点のずれなしに全列を採点できます。競技プログラミングや Project Euler 風の問題では分母上限のもと最良の有理近似が必要になることが多く、それはまさに対象の連分数展開の近似分数です。
連分数近似分数計算機で順位を狙うコンテンツサイトは、同じ純モジュール上で自動化経路とバイト一致する無料ブラウザ経路の恩恵を受けます。
活用例
教室と宿題の確認
学習者が π や √2 の部分商を提出し、教科書の漸化式に対して近似分数の完全な順序付きリストを照合します。
試験と LMS の自動採点
空リストと非整数を拒否する決定論的オラクルで連分数の設問を採点し、空虚な成功を返しません。
ディオファントスと近似のパイプライン
既知の部分商を、ペル方程式ソルバー・暦天文・ノート上の有理再構成向けの h/k 表へ変換します。
よくある質問
リストが空の場合はどうなりますか?
連分数には少なくとも一つの部分商が必要で、空入力は長さゼロの成功列としては扱われません。
πの連分数[3; 7, 15, 1]の近似分数は何ですか?
3/1、22/7、333/106、355/113です。連分数を1項ずつ後ろで打ち切るごとに得られ、それぞれが前の分数よりもπをよく近似します。
近似分数はどう計算しますか?
新しい部分商に直前の分子を掛け、その一つ前の分子を足します。分母も同じように求めます。初期値は0と1に固定されているので、最初の近似分数は最初の部分商を1で割ったものです。
近似分数はすでに約分されていますか?
はい。正則連分数では、どの近似分数も既約分数で出てくるため、22/7や355/113はこれ以上約分できません。隣り合う近似分数をたすき掛けすると、差は必ずちょうど1になります。
部分商に小数を入力できますか?
いいえ。部分商はすべて整数である必要があり、小数や空のリストは誤った結果を出さずに分かりやすいメッセージで断られます。2の平方根なら1、2、2、2のように既知の値を入れてください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/convergents-from-cf \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"partial_quotients":[3,7,15,1]}'const res = await fetch("https://api.kit.forhosting.com/numth/convergents-from-cf", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"partial_quotients": [
3,
7,
15,
1
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/convergents-from-cf",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"partial_quotients": [
3,
7,
15,
1
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/convergents-from-cf", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"partial_quotients":[3,7,15,1]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"partial_quotients":[3,7,15,1]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/convergents-from-cf", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"partial_quotients": [
3,
7,
15,
1
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.convergents_from_cf",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
π を [3; 7, 15, 1, 292, …] として学ぶ学生、ペル方程式ソルバーを検証するプログラマ、還元基底を調べる暗号研究者はいずれも、a_i の列から分数 h_n/k_n への同じ決定論的写像を必要とします。空リストと非整数の要素は invalid_input で失敗するため、採点器や自動化が誤ったペイロードを真の空結果と取り違えることはありません。
近似分数とは何か、漸化式の仕組み
単純連分数は [a0; a1, a2, …, am] と書き、各 a_i は整数の部分商です。本エンドポイントはその全列を一度の応答で具体化し、表示・採点・より大きなディオファントス処理への供給を、クライアント言語ごとに漸化式を再導出せずに行えます。
入力契約、応答の形、エラーの扱い
有限整数の空でない配列(または整数小数のカンマ区切り文字列1本)です。空配列や空文字列リストは、ゼロ個の近似分数を返す代わりに明確な空リストメッセージで拒否されます。空の連分数はこのツールにとって妥当な数学的対象ではないためです。六十四項を超えるリストは、分子・分母をプラットフォームの安全整数域に保つために拒否されます。formula 文字列は授業の答えの横に出すための漸化式の再掲です。必須フィールド partial_quotients を含む JSON 本体を POST してください。同じリストに対して別名 quotients、a、cf、terms、coefficients も受け付けます。各要素は JSON 数値、BigInt 互換の整数文字列、符号付き整数文字列のいずれかでよく、分数・指数表記・空文字列・非有限値は不正な添字を示す invalid_input で失敗します。中間演算は BigInt を用い、分子または分母が安全整数範囲を外れる場合は精度を黙って落とさず invalid_input で失敗します。検証失敗は課金されず、成功した近似分数列だけが公開の基本料金 $0.002 を消費します。
CF から近似分数を返す API が役立つ場面
別ステップで部分商を得た研究ノートは、h/k 漸化式だけのために巨大な数式処理系を引く代わりに、この軽い parse エンドポイントを呼べます。実装が純 parse の tier A であるため、成功呼び出しはモデルトークンも外向き通信もなく $0.002 で、invalid_input は残高を引き落としません。
技術的な質問
連分数から近似分数を得るにはどうすればよいですか?
partial_quotients を空でない整数配列として送ってください。例は [3, 7, 15, 1] です。API は各近似分数 h_n/k_n を分子・分母・分数文字列・小数値付きで返します。
各部分商は整数でなければなりませんか?
はい。非整数・指数表記・非数値文字列は、問題の添字を示す invalid_input で拒否されます。
計算機はどの漸化式を使いますか?
標準の初期値 h−2=0、h−1=1、k−2=1、k−1=0 のあと、各添字 n について h_n = a_n·h_{n−1} + h_{n−2}、k_n = a_n·k_{n−1} + k_{n−2} です。
連分数近似分数計算機の料金はいくらですか?
ブラウザツールは無料です。API リクエストは成功呼び出し1回あたり $0.002 の前払い KIT 残高を使い、無効な入力は課金されません。