タクシー数を2つの正の立方数の和で表す方法
1729は1³ + 12³と9³ + 10³の2通りで表せます。整数を入力すると、和がその数になる正の立方数の組をすべて表示し、なければ空の結果を返します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 1,729
- 数量
- 2
タクシー数の表現とは、ある整数を2つの正の整数の立方の和として表すことです。この計算機は指定された整数を調べ、条件を満たすすべての異なる組を返します。順序を逆にした重複を避けるため、小さい底を常に先に配置します。有名なタクシー数の研究、整数論の演習の確認、予想の検証に、厳密で決定的な計算としてご利用いただけます。該当する組がない数も有効な入力であり、エラーではなく空の一覧と件数0を返します。
結果の読み方
返される各レコードには、立方の和が指定された数と正確に一致する2つの正の整数aとbが含まれます。計算機は常にaをb以下にします。そのため、1の立方と12の立方の和、および12の立方と1の立方の和は、同じ1つの表現として扱われます。
件数0は失敗ではありません。ここで定めた意味において、その整数を2つの正の立方数の和で表せないことを示します。「正」という条件は重要です。
底が0または負の数である場合は意図的に除外されており、このツールは符号付き立方数の和という広い問題ではなく、古典的なタクシー数の問題を扱います。この明確な規約により、授業、娯楽数学、プログラムによる探索の結果を、対称な組を手作業で除かずに比較できます。
すべての組を見つける仕組み
アルゴリズムは、許される最小の第1の底と、可能な最大の第2の底から開始し、それぞれの立方の和をnと比較します。和が小さすぎる場合、目標に近づくには第1の底を増やします。和が大きすぎる場合は第2の底を減らします。
正確に一致すると、その組を記録して両方のポインターを内側へ進めます。正の整数では立方の値が厳密に増加するため、この2ポインター法は有効な組を見落とさず、同じ組を二度報告することもありません。また、可能な組合せを総当たりする必要がなく、比較回数が二乗で増える代わりに、入力の立方根に比例する処理だけを行います。
公表された上限内では、すべての計算がJavaScriptの安全な整数範囲に収まり、等値判定は近似ではなく厳密です。無作為抽出、外部の参照表、ネットワーク通信は使用しません。
入力の選び方と出力の使い方
nには2から1,000,000,000,000までの整数を指定してください。小数、数字の文字列、有限でない値、安全でない整数、2未満の値は、公開された入力仕様を満たさないため拒否されます。既知のタクシー数を調べる場合は、まず件数を確認し、次に表現の配列から実際の底を取得してください。
多数の候補を調べる際、空の配列は通常の結果として扱えますが、検証エラーが出た場合は入力を修正する必要があります。組は第1の底が小さいものから、より均衡した底へ進み、各オブジェクトは同じキーを持ちます。範囲内で次のタクシー数を探索したり、指定個数の表現を持つ最小の数であることを証明したりはしません。
それらは別の計算問題です。
活用例
有名なタクシー数を確認する
1729などの既知の例について、正の立方数による異なる組を確認できます。
整数論の演習を検証する
手計算で求めた立方数の組の一覧を、完全で決定的な結果と比較できます。
数学データセットを作成する
整数を個別に照会し、正規化された表現件数と底の組を保存できます。
よくある質問
異なる表現とは何ですか?
小さい底を先に置いた正の整数の組です。2つの底を入れ替えても別の表現にはなりません。
0や負の数の立方も含まれますか?
含まれません。 2つの底はいずれも正の整数でなければなりません。
nが2以上でなければならないのはなぜですか?
2つの正の立方数の最小の和は、1の立方と1の立方の和である2だからです。
1729は2つの立方数の和として何通りに表せますか?
1³ + 12³と9³ + 10³の2通りです。各組は小さい数を先に並べるため、12³ + 1³が別の表し方として重ねて数えられることはありません。
表し方が1つもない数を入力するとどうなりますか?
空の一覧と個数0が返ります。これはエラーではなく、その数が2つの正の立方数の和にならないという答えです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/taxicab-representations \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":1729}'const res = await fetch("https://api.kit.forhosting.com/numth/taxicab-representations", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 1729
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/taxicab-representations",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 1729
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/taxicab-representations", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":1729}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":1729}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/taxicab-representations", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 1729
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.taxicab_representations",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
結果の読み方
式のフィールドには同じ等式が簡潔に示され、件数には実際に異なる順序なしの組の数が表示されます。
すべての組を見つける仕組み
同じ純粋関数がAPIとブラウザーの両方で動作するため、順序、フィールド、検証、結果が一致します。
入力の選び方と出力の使い方
この機能が1回のリクエストで調べる整数は1つだけです。APIの利用料金は1回につき$0.002であり、決定的な結果形式なので後続処理での保存や比較も容易です。
技術的な質問
表現が存在しない場合はどうなりますか。
リクエストは正常に完了し、件数0と空の表現配列が返されます。
APIリクエストの料金はいくらですか。
APIリクエスト1回の料金は$0.002です。