ピタゴラス数の生成
nより大きいmと整数nから、ユークリッドの公式でピタゴラス数を作ります。mが2、nが1なら3-4-5の三角形です。原始的かどうかの判定と、a² + b² = c²の確認も表示されます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- M
- 2
- N
- 1
- A
- 3
- B
- 4
- C
- 5
- 三つ組
- 3, 4, 5
a の二乗と b の二乗の和が c の二乗となるすべての整数解は、ユークリッドの古典的なパラメータ化により、正の整数 m が n より大きい組から構成できます。教員、競技プログラマー、教材の著者は、平方を手計算したり偶の辺を取り違えたりせず、必要に応じてその三数を得たいと考えます。このピタゴラス数ジェネレータは m と n を受け取り、非正の値および m が n より厳密に大きくない組を拒否し、a を m の二乗から n の二乗を引いた値、b を 2mn、c を m の二乗と n の二乗の和として返すとともに、原始性フラグと検証結果を付けます。
ユークリッドの公式と m・n の意味
ユークリッドの公式は、初等整数論におけるピタゴラス数の標準的な構成的生成法です。m が n より厳密に大きく、ともに正の整数であるとき、a を m の二乗から n の二乗を引いた値、b を m と n の積の二倍、c を m の二乗と n の二乗の和と置きます。
短い展開により a の二乗と b の二乗の和が c の二乗に恒等的に等しいことが示され、有効な組はすべて整数辺の直角三角形の真の三数を与えます。m を 3、n を 2 にすると 5-12-13、m を 4、n を 1 にすると 15-8-17 になります。m と n が互いに素で、かつ偶奇が逆(一方が偶数、他方が奇数)のとき、結果の三数は原始的です。
つまり三辺は 1 より大きい公約数を持ちません。m と n が共通因子を持つ場合、または両方が奇数の場合、三数はなお有効ですが拡大されています。本機能はご指定のパラメータに対するユークリッドの生の三数を常に返し、再スケールや辺の入れ替え、目標の斜辺からの生成元探索は行いません。
m と n をご指定いただければ、a・b・c を計算し、標準基準に照らして原始的かどうかを報告します。
ピタゴラス数ジェネレータが役立つ場面
教室やチュータリング基盤では、学習者が平方や積の計算ミスなく直角三角形の族を探索できるよう、ピタゴラス数ジェネレータを用います。競技やオリンピックの出題者は原始的な三数で問題を仕込み、無効な生成元組を静かに零辺の退化した三数として返すのではなく、決定的に弾くオラクルを必要とします。
カリキュラム生成器は m と n を入れ子ループで走査し、必要なら非原始的な組を飛ばし、ワークシート用の斜辺一覧を集められます。無効入力は残高を消費しません。
教室向けの範囲では m と n を控え目にし、テストに期待する triple 配列を固定すれば、計算機代数スタックを自前で立てずに、宿題・LMS プラグイン・エッジワーカー向けの再現可能な整数辺が得られます。
活用例
教室での直角三角形の探索
学習者に m と n を選ばせ、a・b・c を即座に見せ、三数が原始的か、より小さなものの拡大倍かを発見させます。
競技問題の種まき
決定的なユークリッド・オラクルで、オリンピックやプログラミング競技向けの整数辺直角三角形の族を生成します。
ゲームとカリキュラムのツール
手作業の三数表なしに、タイル地図・経路設計・自動生成ワークシート向けの整数の辺と斜辺の長さを作ります。
よくある質問
m が n より大きくない場合は?
ユークリッドの公式は m > n > 0 を要求し、等しいまたは逆のパラメータは拒否され課金されません。
三数が原始的なのはいつですか?
gcd(m, n) = 1 かつ m と n の偶奇が逆(一方が偶数、他方が奇数)のときです。それ以外でも a・b・c は有効な三数ですが共通因子を持ちます。
5-12-13の三角形になるmとnは何ですか?
mを3、nを2にします。m² − n²が5、2mnが12、m² + n²が13になります。3と2は共通の因数がなく片方が偶数なので、この組は原始的です。
mが3、nが1で8-6-10になるのはなぜですか?
2つの数がどちらも奇数なので、公式は拡大された組を作ります。8-6-10は3-4-5の2倍です。直角三角形としては正しいものの、原始的とは表示されません。
2本の辺の順番は入れ替わりますか?
いいえ。aはm² − n²、bは2mnのまま返し、辺の入れ替えや拡大縮小はしません。そのためmが4、nが1なら15-8-17の順になります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/pythagorean-triple-generator \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"m":2,"n":1}'const res = await fetch("https://api.kit.forhosting.com/numth/pythagorean-triple-generator", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"m": 2,
"n": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/pythagorean-triple-generator",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"m": 2,
"n": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/pythagorean-triple-generator", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"m":2,"n":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"m":2,"n":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/pythagorean-triple-generator", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"m": 2,
"n": 1
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.pythagorean_triple_generator",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
ユークリッドの公式と m・n の意味
教室の古典的な種は m が 2、n が 1 で、よく知られた 3-4-5 の三角形(a=3, b=4, c=5)を得ます。例として m=3 と n=1(ともに奇数)は 8-6-10 となり、これは 3-4-5 の二倍です。
入力契約、応答フィールド、エラー挙動
両パラメータは 0 より厳密に大きくなければなりません。ユークリッドの公式は正の生成元を前提とするため、0 や負は拒否されます。さらに m は n より厳密に大きい必要があります。m が n と等しいと a が 0 になり三角形にならず、m が n より小さいと通常の順序形式に反します。成功時は m と n をエコーし、整数辺 a・b・c、順序 [a, b, c] の triple 配列、primitive ブール値、平方が安全整数範囲内にあるときの a²+b²=c² を示す check、恒等式を述べる formula 文字列を返します。安全整数の制限があります。検証失敗は課金されません。必須の正の整数 m と n を含む JSON オブジェクトを POST してください。各フィールドは JSON の数値、または数字のみの文字列として送れます。空文字、欠落、非整数、有限でない値はフィールド名付きで invalid_input となります。m の二乗が IEEE-754 の厳密整数範囲を超えてはならず、計算された a・b・c 自体も安全整数でなければなりません。例: m=2, n=1 で a=3, b=4, c=5, primitive true。例: m=6, n=3 で a=27, b=36, c=45, primitive false(生成元が 3 を共有)。直角三角形の図が必要ならご自身の図化コードと JSON を組み合わせてください。本エンドポイントは数値の三数とメタデータのみを出力します。
ピタゴラス数ジェネレータが役立つ場面
ゲームやグラフィックスの作者はタイル寸法、経路長、レベル設計の制約のために整数辺の直角三角形を要することがあり、小さな parse API を呼べば場当たり的な三数表の埋め込みを避けられます。実装は純 parse の tier A のため、成功した各呼び出しはモデルトークンも外向きネットワークもなく、公開された基本料金 $0.002 です。
技術的な質問
ピタゴラス数ジェネレータの仕組みは?
正の整数 m と n(m > n)を送ってください。API は a = m² − n², b = 2mn, c = m² + n² と、三数が原始的かどうかを返します。
3-4-5 は含まれますか?
はい。m = 2, n = 1 で a = 3, b = 4, c = 5(primitive true)— 基本の原始的ピタゴラス数が得られます。
ピタゴラス数ジェネレータの料金は?
ブラウザツールは無料です。API は成功した呼び出しごとにプリペイド KIT 残高から $0.002 です。無効入力は課金されません。