ゴールドバッハ分割数
10は 3 + 7 と 5 + 5 の2通りに素数の和で表せるので、ゴールドバッハ分割の数は2です。4から一千万までの偶数を入力すると、この組の数を求めます。順序を入れ替えた組は1つとして数えます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 10
- 分割の個数
- 2
ゴールドバッハ分割数計算ツールは、2より大きい偶数 n を受け取り、和がちょうど n になる素数の組を順序を区別せずに数えます。たとえば10には、3と7、5と5という2通りの分割があります。各組は1回だけ数えるため、7と3を別の答えにはしません。計算には正確なエラトステネスの篩を使い、ネットワークへ接続せず、同じ入力には常に同じ結果を返します。学習や調査にはブラウザで無料でご利用いただけます。
ゴールドバッハ分割数が表すもの
強いゴールドバッハ予想とは、2より大きいすべての偶数は2つの素数の和で表せる、という主張です。ゴールドバッハ分割は、そのような表現を順序なしの1組として扱います。nが10なら、有効な表現は3と7、5と5であり、分割数は2です。
加数の順序は区別しないため、3と7、7と3は同じ分割として1回だけ数えます。同じ数を2回使うことも、その数が素数なら有効です。そのため10では5と5も含まれます。
簡潔な応答なので、表現数の確認、多数の偶数の比較、既知の数列の検証に適しています。0という個数も数学的には正常な結果ですが、対応範囲内で見つかれば予想への反例となり、非常に重要です。
各組を重複なく数える仕組み
アルゴリズムは、0からnまでの全整数を表す小さな型付き配列を最初に作ります。0と1を素数でない値として印を付けた後、エラトステネスの篩を適用します。nの平方根までに未標識の値pが見つかるたび、pの2乗から始まる倍数を合成数として標識します。
この処理後、印のない添字が素数です。続いて、候補pを2からnの半分までだけ調べます。pとnからpを引いた値がともに素数なら、結果を1増やします。
半分で止めることが、順序を区別しないための要点です。異なる2数の組では小さい方がこの範囲に1つだけ入り、同じ素数の組は境界にちょうど現れます。そのため、組の並べ替え、集合の作成、重複して数えた合計の除算は不要です。
上限1000万により配列のメモリとループ処理が制限され、実装もフォーム検証とは別に同じ上限を強制します。計算はJavaScriptの安全な範囲内の正確な整数演算です。
学習、テスト、数の調査への活用
分割数は、偶数が大きくなるにつれて素数による表現がどう変わるかを簡潔に示します。教育では、素数、篩、順序のない組、ゴールドバッハ予想に関する問題の解答を、候補を手作業で列挙せず作成できます。開発では、数論ライブラリ用の再現可能なテストデータを作ったり、別の篩実装を検証したり、組の個数だけを問う競技プログラミングの解答を確認したりできます。
趣味の数学調査では、選んだ入力を比較し、有限区間の極大や極小を探せます。ただし有限個の計算は証拠にはなっても、すべての整数に対する証明ではありません。ブラウザ版は同じ純粋な計算を端末内で実行し、対話利用は無料です。
不正な入力を勝手に変換することはなく、奇数の丸め、小数の切り捨て、上限超過値の実行は行いません。
活用例
ゴールドバッハ分割数の調査
複数の偶数について、素数和の組を手作業で列挙せず、順序を区別しない表現数を比較できます。
プログラミング問題の検算
篩、素数、順序なしの組を扱う授業や課題向けに、再現可能な正解値を作成できます。
数論テストデータの作成
別実装のゴールドバッハ分割や素数表を単体テストするために、正確で簡潔な結果を利用できます。
よくある質問
ゴールドバッハ分割とは何ですか?
和が指定した偶数になる2つの素数を、順序を区別せず1組としたものです。2数を入れ替えても別の分割にはなりません。
同じ素数を2回使う組も数えますか?
はい。 nを2で割った値が素数なら、同じ値の組も有効です。たとえば5と5は10の分割の1つです。
奇数が拒否されるのはなぜですか?
この機能は、2より大きい偶数を対象とする強いゴールドバッハ予想の問題を実装しているため、奇数は契約の対象外です。
入力できる最大値はいくつですか?
nの最大値は10000000です。この上限により、ブラウザとエッジWorkerの両方でメモリ量と実行時間を予測可能に保ちます。
この計算でゴールドバッハ予想を証明できますか?
いいえ。 指定された1つの整数について表現を検証して数えるだけです。有限個の計算結果では、すべての偶数について予想を証明できません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/goldbach-partition \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":100}'const res = await fetch("https://api.kit.forhosting.com/numth/goldbach-partition", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/goldbach-partition",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/goldbach-partition", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/goldbach-partition", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 100
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.goldbach_partition",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_n | 10000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
再現可能な個数をプログラムから取得する場合、成功したAPIリクエスト1件の料金は$0.002です。
ゴールドバッハ分割数が表すもの
この機能は組の一覧ではなく、入力したnと1つのpartition_countを返します。入力は正確なJSON整数で、偶数かつ4以上1000万以下でなければなりません。奇数や4未満の値は対象の定義に当てはまらないため、invalid_inputになります。
各組を重複なく数える仕組み
外部の素数表、サービス、乱数、時刻は使わず、リクエスト間の状態も保持しません。
学習、テスト、数の調査への活用
連続する偶数について計算し、partition_countをグラフにすると、調べた各値には少なくとも1つの表現がありながら、数列自体は不規則に変動することが分かります。成功したAPIリクエストは1件$0.002で、保存、比較、グラフ化しやすい小さなオブジェクトを返します。
技術的な質問
料金はいくらですか?
このページではブラウザから無料で実行できます。成功したAPIリクエストは$0.002で、無効な入力は結果を生成せず拒否されます。