分数を既約分数にする約分計算機
分数を一度で既約分数にします。42/56は分子も分母も14で割れるので3/4になります。符号も整え、6/-8は分母が正の-3/4として返します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 分子
- 42
- 分母
- 56
- 分子
- 3
- 分母
- 4
この約分計算機は、分子と分母を同じ値を表す最も簡単な整数の組に変換します。最大公約数を求めて両方をその数で割り、分母が正になるよう負の符号は分子側にそろえます。結果は常に決定的で、学習問題の確認、計算処理、比率の保存、説明文の生成などにそのまま利用できます。2つの整数を入力すると、簡約された分子と分母だけが返ります。小数、値の欠落、分母の0については、修正しやすい明確な入力エラーを返します。
既約分数とは何か
分子と分母に1より大きい共通の正の因数がないとき、その分数は既約分数です。たとえば42/56は、どちらも14で割れるため、まだ約分できます。両方を14で割ると3/4になり、同じ有理数を正確に表したまま、整数の因数ではそれ以上約分できません。
この計算機は、お客様が指定した2つの欄から直接この処理を行います。符号の扱いも統一されます。分母が負なら符号を分子へ移すため、6/-8は3/-4ではなく-3/4になります。
分子が0の場合、正規形は0/1です。分子が0の有効な分数はすべて同じ値を表すためです。表現を1つの正規形にそろえると、同じ数を複数の文字列で扱わずに済み、分数の比較、キャッシュ、表示、システム間の受け渡しが容易になります。
出力には、簡約済みの分子と必ず正の分母が含まれます。
約分の計算方法
分子と分母の絶対値に対してユークリッドの互除法を使い、最大公約数を求めます。この方法では、余りが0になるまで、対象の関係を余りで繰り返し置き換えます。最後の0でない除数が最大公約数です。
元の2つの値をその数で割れば、共通因数が残らない整数の組になります。この処理は、機能が受け付ける安全な整数の範囲で正確です。分数を小数に変換しないため、丸めによる情報の損失もありません。
ネットワーク、乱数、時刻、モデル、保存状態は使用せず、同じ入力からは必ず同じ出力が得られます。演算前に両方の入力を検証します。値がない場合、小数、数値でない値、JavaScriptの安全な範囲外の整数は、無効な整数として拒否されます。
0による除算では有理数の分数を定義できないため、分母が0の場合は専用の明確なエラーになります。これにより、見た目は妥当でも数学的に誤った結果が後続の計算へ入ることを防ぎます。
結果を確実に利用する方法
返された組は、同値で正規化された比率が必要な場所で元の分数の代わりに使用できます。等値判定の前には特に便利です。2/3、4/6、-8/-12はいずれも2と3の同じ組へ約分されるため、毎回交差乗算をせず、正規化済みの欄を比較できます。
文書内の分数、学習用フィードバック、レシピの倍率、確率レポート、正確な設定値を整形する前にも役立ちます。3/4を表すために0.75と1のような小数近似を送信しないでください。この契約は意図的に整数の構成要素を要求します。
正常な結果の分母は常に正なので、後続処理に別の符号規則や負の分母専用の分岐は不要です。
活用例
保存する比率の正規化
保存前に比率を約分し、同値の数値が一貫した分子と分母を共有するようにします。
分数問題の答え合わせ
学習者の回答と正解の分数を比較するため、正規化された約分結果を生成します。
正確な計算の準備
途中の分数を丸めた小数へ変換せず、そのまま簡約します。
よくある質問
小数を入力できますか?
いいえ。 整数の分子と分母を約分する機能なので、両方とも整数である必要があります。
分数がすでに既約かどうかはどう見分けますか?
分子と分母に1より大きい共通の正の約数がなければ既約です。3/4は既約ですが、42/56はどちらも14で割れるので、まだ約分できます。
比べる前に約分するのはなぜですか?
見た目が違っても同じ数を表す分数があるからです。2/3、4/6、-8/-12はどれも約分すると2/3になるため、約分した形どうしを比べれば等しいかどうかがすぐ分かります。
分子が0のときはどうなりますか?
結果は必ず0/1になります。分子が0の分数はどれも同じ値なので、表し方を一つにそろえておくと比較や保存がしやすくなります。
分母が負の数でも入力できますか?
はい、入力できます。符号は分子に移されるので、6/-8は3/-4ではなく-3/4として返り、分母は常に正の数になります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/lowest-term \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"numerator":42,"denominator":56}'const res = await fetch("https://api.kit.forhosting.com/math/lowest-term", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"numerator": 42,
"denominator": 56
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/lowest-term",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"numerator": 42,
"denominator": 56
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/lowest-term", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"numerator":42,"denominator":56}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"numerator":42,"denominator":56}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/lowest-term", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"numerator": 42,
"denominator": 56
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.lowest_term",
"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つの欄を読み取ってください。自動処理では1回のリクエストが$0.002です。クライアント側ではinvalid_inputエラーを処理し、お客様が指定された欄を修正できるようにしてください。
技術的な質問
分子が0の場合はどうなりますか。
値が0になる有効な分数は、すべて0/1に正規化されます。
分母を負の数にできますか。
はい。分数を約分し、負の符号を分子へ移します。
分母が0の場合はどうなりますか。
分母が0の分数は定義されないため、invalid_inputエラーを返します。
APIリクエストの料金はいくらですか。
APIリクエストは1回$0.002です。ブラウザー計算機はページ上でローカル実行できます。