二つの数の線形結合
15と25にそれぞれ整数を掛けて足し、10にする組を求めます。15 × 4 + 25 × (−2) = 10 となり、最大公約数5が10を割り切るので解があります。割り切れない場合は解なしと表示されます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- A
- 15
- B
- 25
- C
- 10
- Gcd
- 5
- X
- 4
- Y
- -2
- 検算
- 10
二つの整数 a と b の 線形結合 とは、ある整数 x と y について a かける x 足す b かける y と 書ける 任意の 整数 の ことです。あらゆる 目標 が 到達 できる わけではありません。ベズーの 定理 に よれば、到達 可能な 集合 は a と b の 最大公約数 の 倍数 全体 と 一致 します。この 二つの 数 の 線形結合 計算機 は 係数 a と b と 目標 c を 受け取り、拡張 ユークリッド 互除法 で その gcd を 計算 し、目標 を 実現 する 一組 の 係数 を 返す か、整数解 が 存在 しない こと を 報告 します。学生 は ディオファントス 型 の 宿題 確認 に、開発者 は コンテスト や スケジュール 算術 や モジュラー 算術 パイプライン で 同じ 純粋 な 契約 を 使います。
線形結合の意味と目標が到達できる条件
整数 a と b が与えられたとき、a かける x 足す b かける y というすべての整数線形結合の集合は、初等整数論の基本対象です。ユークリッドの互除法により、この集合は a と b の最大公約数 g の倍数の集合と一致することが分かります。
同値な言い方では、線形ディオファントス方程式 a かける x 足す b かける y が c に等しいという式が整数解をもつのは、g が c を割り切るとき、かつそのときに限ります。解が一つあるとき、解は無限にあります。
ある特定解 (x0, y0) があれば、一般解の族は任意の整数パラメータ t に対して x は x0 足す (b を g で割った値) かける t、y は y0 引く (a を g で割った値) かける t となります。特定解を構成的に得る手順が拡張ユークリッド互除法です。
g を計算しながら各剰余がもとの a, b の結合としてどう書けるかを追跡し、終了時に g 自身のベズー係数を得ます。その係数に整数スケール c を g で割った値を掛けると、目標 c の解が得られます。
本計算機はその一連の処理をまとめ、gcd、真偽の possible フラグ、到達可能なときの特定の (x, y)、a かける x 足す b かける y に等しい数値 check、読みやすい equation 文字列、パラメトリック族の general 形式文字列を返します。
g が c を割り切らない場合でも応答は成功ですが possible を false にし障害を説明します。クライアントが不正データを送ったのではなく、方程式に整数解がないという教室の言い方に合わせています。
入力契約、応答の形、エラー時の振る舞い
a が零かつ b が零の対も拒否されます。二つの零の線形結合は目標の意味ある生成系にならないためです。整形式だが解けない事例では possible は false で x と y は省略され、reason は gcd が目標を割り切らないと述べます。
例:a が十五、b が二十五、c が十なら gcd は五、possible は true、妥当な一組は x が四、y が負の二です。不可能の例:a が四、b が六、c が五なら gcd は二で、二は五を割り切らないため possible は false です。すべての整数解が必要ならご自身のステップ生成器と組み合わせてください。
線形結合計算機が実務で価値を生む場面
競技プログラミングやオリンピック訓練では a かける x 足す b かける y が c に等しい整数解を繰り返し求めます。gcd 判定で可解性を保証し係数を返す決定論的オラクルは、スケールのオフバイワンを減らします。空答えに点を与えないためです。
工学ノートは周期的スケジュール、硬貨の額面、ちょうど合計に合わせる歯車の歯数などで二係数の結合を使います。暗号やモジュラー算術のデモはしばしば同じ拡張ユークリッドの段から始まり、gcd が一のときに逆元へ特化します。検証失敗は残高を消費しません。
活用例
線形ディオファントス宿題の確認
a, b と目標 c を送り、a·x + b·y = c となる整数 x, y が存在するかを確かめ、特定解と一般パラメトリック形を取得します。
コンテストとプログラミングのオラクル
オンラインジャッジ、生成器、ユニットテストで二変数線形ディオファントス課題の可解性判定と係数回収を自動化します。
スケジュールと額面の算術
シフト、硬貨枚数、歯車の歯数など、二つの刻みがちょうど合計に届くかを gcd の整除規則と明示係数で判断します。
よくある質問
二つの数の線形結合として目標をどう表しますか?
整数 a, b と目標 c を送ってください。g が c を割り切れば a·x + b·y = c となる整数 x, y を返し、そうでなければ possible は false です。
整数解がないのはいつですか?
gcd(a,b) が c を割り切らないときです。応答は成功し possible は false、reason 文字列が付きます。これは数学的な無解であり、クライアント検証エラーではありません。
係数は一意ですか?
いいえ。( x0,y0) が成り立てば、任意の整数 t について x0+(b/g)·t と y0−(a/g)·t も成り立ちます。
a と b がどちらも零のときは?
二つの零の線形結合は目標値に対するよく定義された生成系ではありません。
求めた係数はどう確かめますか?
それぞれの数に係数を掛けて足してください。15と25、目標10の場合、4と−2の組では 15 × 4 + 25 × (−2) が10になるので正しい組み合わせです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/algebra/linear-combination \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":15,"b":25,"c":10}'const res = await fetch("https://api.kit.forhosting.com/algebra/linear-combination", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 15,
"b": 25,
"c": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/algebra/linear-combination",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 15,
"b": 25,
"c": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/algebra/linear-combination", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":15,"b":25,"c":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":15,"b":25,"c":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/algebra/linear-combination", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"a": 15,
"b": 25,
"c": 10
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "algebra.linear_combination",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
入力契約、応答の形、エラー時の振る舞い
必須の整数三つ、結合の係数 a と b、および表現したい目標値 c を含む JSON 本体を POST してください。フォーム向けクライアントのために a には first または m、b には second または n、c には target または rhs の別名を受け付けます。各欄は JSON 数、符号付き数字文字列、またはプラットフォームの安全整数絶対最大以内の bigint で送れます。小数、空文字、欠落、範囲外はフィールド名付きの invalid_input で失敗し課金されません。解ける事例では本体にエコーされた a, b, c、非負の gcd、true の possible、整数 x と y、再構成した結合に等しい check、十五かける四足す二十五かける負の二が十に等しいといった equation、自由パラメータ t を示す general_x と general_y、整除性条件を再述する短い formula が含まれます。本エンドポイントは特定解と一般形を返し、無限列挙は行いません。
線形結合計算機が実務で価値を生む場面
代数・整数論の授業は構成的ベズー演習や線形ディオファントス方程式を課し、チューターや LMS プラグインには不正入力と真の無解を区別する安定した JSON 契約が必要です。実装は純粋な parse ティア A のため、成功した呼び出しはモデルトークンも外向き通信もなく公開の基本料金 $0.002 です。安全整数の範囲でリクエストし、特定解と possible フラグをテストに固定すれば、自前の大規模計算機代数なしで宿題、CI フィクスチャ、エッジワーカー向けに再現可能なディオファントス解が得られます。
技術的な質問
線形結合計算機の料金は?
ブラウザツールは無料です。API リクエストは成功した呼び出しごとに前払い KIT 残高から $0.002 です。不正入力は課金されません。