整数分割計算機
順序を問わずに整数を和で表す方法を数えます。4は4、3+1、2+2、2+1+1、1+1+1+1の5通りなのでp(4)は5、5なら7通りです。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 5
- 値
- 7
- 数量
- 7
- 電力(W)
- 7
整数分割関数 p(n) は古典的な数え上げの問い、すなわち非負整数 n を正の整数の和として書くとき、加数の順序を問わなければ何通りあるか、に答えます。例えば 4 は 4、3+1、2+2、2+1+1、1+1+1+1 と等しいので p(4) は五となり、5 には七通り、10 には四十二通りの分割があります。分割は数論・母関数・統計力学・プログラミング競技で、順序付きの合成やラベル付き集合の分割ではなく多重集合の和を数える場面に現れます。本機能は非負整数 n を受け取り、BigInt 動的計画法で計算した正確な p(n) を十進文字列として返すため、通常の安全整数の上限を大きく超える値でも桁ごとに正しく保てます。負の n は静かなゼロや誤答ではなく、明確な検証エラーで拒否します。
分割関数 p(n) の定義
非負整数 n の制限なし整数分割とは、n を正の整数の和として書く方法のうち、加数の順序が意味を持たないものを指します。慣例として p(0) は一であり、零の空分割を数えます。教科書の小さな値は p(1)=1、p(2)=2(すなわち 2 と 1+1)、p(3)=3、p(4)=5、p(5)=7、p(6)=11、p(10)=42 です。
数列の通常母関数は、一以上の各 k について一から一マイナス x の k 乗を割った無限積であり、各正整数が部分として任意回数現れ得ることを符号化します。ソフトウェアで用いる実用的な漸化式は硬貨両替型の古典的動的計画です。和ゼロを作る方法を一つとして配列を初期化し、部分の大きさ一から n までについて残りを作る方法を加算します。
この漸化式は p(n) を厳密に埋め、部分を非減少の大きさ順で一度だけ導入するため順序を二重に数えません。
関連するが異なる対象には、順序が意味を持ち n の合成が二の n 乗マイナス一通りある合成、ラベル付き要素を分割しラベルなしの正整数を足すのではない第二種スターリング数やベル数で数えられる集合分割、相異なる部分・奇数部分のみ・部分の個数固定などを要求する制限付き分割があります。
本実装は浮動小数近似・モンテカルロ標本・外部表を一切使わず、一次元の BigInt 配列を埋めて各桁を正しく保ちます。経路は完全に決定的で、乱数シード・時計・ネットワーク・モデルドリフトがなく、同じ n は常に同じ文字列を返します。
実務で整数分割が現れる場面
数論の授業とプログラミング競技は、与えられた n の制限なし分割が何通りか、p(n) がどう成長するか、小さな値の表が Ramanujan 合同式や他の古典的恒等式と一致するかを絶えず問います。アルゴリズム設計者は整数ナップサック型の状態空間の解析、資源予算の多重集合分解の数え上げ、部分サイズを追う DP 表の寸法決めに分割数を用います。
物理と組合せ論では p(n) はボース統計の分配関数や母関数の係数と結びつき、教育者は小さな n の分割の短い一覧を示してから個数だけを問うことがよくあります。面接対策やオリンピック訓練では、大きな表を手作業で維持したり合成の数え上げを一ずらしたりするリスクなしに、信頼できる単一の p(n) がしばしば必要です。
後に順序が意味を持つ合成、第二種スターリング数による集合分割、ベル数のみ、相異なるまたは奇数のみの制限付き分割、個数ではなく各分割の明示列挙が必要なら、本ランディングを過負荷にせず別の検索意図として扱ってください。
無料枠のレイテンシを予測可能に保つため n を文書化された上限内に置き、p(n) は五千よりずっと前に安全整数範囲を超えるため、返却値には文字列コンシューマを優先してください。
活用例
数論の宿題と競技
オリンピック問題・離散数学の演習・制限なし整数分割を求める自動解答キー向けに、厳密な p(n) を計算します。
DP とナップサック解析
多重集合分解の状態空間を寸法決めし、浮動小数表なしで整数 DP パイプライン内の分割数フィクスチャを検証します。
教科書の値の確認
母関数の授業や分割デモの構築時に、p(5)=7 や p(10)=42 などの古典値を検証します。
よくある質問
整数分割関数 p(n) とは何ですか?
p(n) は順序を問わず n を正の整数の和として書く方法の個数です。例えば p(4)=5、p(5)=7 です。
合成とはどう違いますか?
合成は順序付きの和を数えます(1+3 と 3+1 は別)。分割は順序を無視するため、これら二つは 4 の同じ分割です。
n が負の場合はどうなりますか?
本計算機は n ≥ 0 を要求し、負の n は拒否され課金されません。
なぜ値が Number ではなく文字列なのですか?
分割数は JavaScript の安全整数をすぐに超えます。十進文字列は大きな p(n) でも各桁を厳密に保ちます。
10の分割はいくつありますか?
42通りです。10を入力するとp(10)として42が返ります。ほかにもp(5)は7、p(0)は1で、何も足さない空の和を1通りと数えるためです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/combo/partition-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5}'const res = await fetch("https://api.kit.forhosting.com/combo/partition-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/combo/partition-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/combo/partition-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/combo/partition-count", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "combo.partition_count",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
min_n | 0 |
max_n | 5000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
無料のブラウザツールと有料 API は同一の純粋関数を共有するため、教室デモと自動化パイプラインが同じ n で食い違うことはありません。
分割関数 p(n) の定義
宣言された境界は n を零以上五千以下に保ち、無料のブラウザツールと軽量な Worker 経路に適した最悪レイテンシを維持しつつ、競技・教室・パイプラインでの厳密な分割数の需要をカバーします。
送る内容と返る内容
整数 n は零以上五千以下でなければなりません。成功時の応答には常に正規化された n、value と count と p として同一の正確な p(n) の十進文字列、表示用の短い式文字列(例: p(5))が含まれます。宿題や素早い健全性確認には無料のブラウザツールを使い、分割数フィクスチャの一括生成が必要なら同一契約をスクリプトから呼び出してください。必須の整数 n をフィールド n で指定します(別名 number、value、または N)。欠落フィールド・非整数・小数・負の n は invalid_input で拒否され課金されません。エラーメッセージは問題のフィールドと失敗した規則を示すため、フォームクライアントやスクリプトは推測せず入力を修正できます。例: n が五なら count は七、十なら四十二、零なら一、四なら五、一なら一、マイナス三ならこの製品規則では負の引数に分割関数が定義されないため invalid_input、小数や非数値文字列も invalid_input です。契約は単体テスト・教室デモ・バッチパイプラインに適した安定した JSON です。成功した API 呼び出しの料金は公開ベースの $0.002 毎件であり、検証失敗は前払い残高を消費しません。
実務で整数分割が現れる場面
本機能は純粋な parse エンジンであるため、API 料金は成功一件あたり公開ベースの $0.002 で、検証失敗は残高を消費しません。
技術的な質問
料金はいくらですか?
ブラウザツールは無料でローカル実行です。API リクエストは成功一件あたり $0.002 の前払い KIT 残高を使い、無効入力は課金されません。