重複なし順列
5つから3つを選んで順番に並べる方法は60通りで、これがP(5,3)の値です。異なる項目の数と埋める位置の数を入力すると、同じものを二度使わない並べ方の正確な数が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 5
- 抵抗(Ω)
- 3
- 数量
- 60
- 表記
- P(5,3)
人を整列させたり、順位付きの賞を割り当てたり、重複しない文字からパスワードを選んだりするとき、順序は意味を持ち、同じ要素を再利用できません。その状況が重複なし順列です。すなわち、利用可能な n 個から選んだ相異なる r 個を並べる場合の数です。閉じた数え上げは n の階乗を n から r を引いた階乗で割った値で、しばしば P(n,r) または nPr と書かれます。本計算機は非負整数 n と r に対してその厳密な整数を評価します。r が n を超える場合、またはいずれかの入力が非負整数でない場合、要求は明確な検証エラーで失敗します。
重複なし順列が数えるもの
重複なし順列とは、n 個の相異なる要素から作る長さ r の順序付き列であり、各要素は高々一度しか現れません。順序は結果の同一性の一部です。ABC と ACB は同じ三文字を使っても異なる配置です。
古典的な閉形式は P(n,r) が n の階乗を n から r を引いた階乗で割った値であり、n に (n マイナス一) を掛け、さらに一つずつ小さい整数を (n マイナス r プラス一) まで掛けた下降積に展開されます。
このモデルに合う教室の話には、n 人のクラブから会長・副会長・書記を選ぶこと、n 人の選手から r 人の入賞者を並べること、一位・二位・三位が異なる賞を割り当てること、未使用の n 記号のアルファベットから r 個の一意なパスワード位置を埋めることが含まれます。r が n に等しいとき、積は完全な階乗 n!
になります。 すべての完全な並びで各要素が一度ずつ現れるからです。r がゼロのとき、積は空で、空の列ただ一つに対応して慣例により数え上げは一です。組合せ C(n,r) は別の問いを答えます。
順序を無視し P(n,r) を r!で割ります。 重複あり順列はさらに別の問いを答え、再利用を許し n の r 乗として増えます。再利用を禁じ、並びを意味あるものと扱う問題なら、これら二つの隣ではなく、本ツールが返す重複なしの数え上げが必要です。
計算機が n! / (n − r)! を評価し n と r を検証する方法
エンジンは両方が有限の非負整数として存在し、公開上限である一万以下であることを確認します。受理された対については、実装は n から下へちょうど r ステップ分の BigInt 因子を掛け合わせます。これは二つの完全な階乗を実体化して割ることなく、n の階乗を n から r を引いた階乗で割った値そのものです。
応答は n と r、P 開き五コンマ三閉じのような記法文字列、同じ対の階乗形の公式文字列もエコーします。境界は明示的で、任意の n をゼロ回取る値は一、n を n 回取る値は n の階乗です。
活用例
宿題・コンテストの検証
学習者と採点者は、非復元の順序付き標本抽出について P(n,r) を確認できます。境界の P(n,0)=1 と P(n,n)=n! も含みます。
非復元の標本空間サイズ
再利用なしの順序付き抽選をモデル化する確率スクリプトは、各言語で BigInt 積を再実装する代わりに決定的な nPr オラクルを呼べます。
順序と再利用の対比を教える
重複なし順列を n^r(重複あり)や組合せと対比する授業ページは、厳密な下降積を領域規則 r ≤ n の横に示せます。
よくある質問
重複なし順列はどのように数えますか?
応答は count = n!/(n−r)! に加え、P(5,3) のような記法と階乗公式の文字列を返します。
重複なし順列の公式は何ですか?
P(n,r) は n の階乗を (n−r) の階乗で割った値、すなわち下降積 n×(n−1)×…×(n−r+1) です。順序は意味を持ち、要素は再利用されません。
r が n より大きいとどうなりますか?
重複なし順列は r が n を超えると未定義です。存在する数より多くの相異なる要素は選べません。
重複あり順列とは何が違いますか?
重複なしでは各要素は高々一度しか使えず、数え上げは n!/(n−r)! で r は n を超えられません。重複ありでは要素を再利用でき、数え上げは n^r です。
組み合わせの数とはどう違いますか?
組み合わせは順番を区別しないため、順列の数をrの階乗で割った値になります。5人から3人を選んで別々の役職に就けるなら順列、ただ3人を選ぶだけなら組み合わせです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/permutation-without-repetition \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5,"r":3}'const res = await fetch("https://api.kit.forhosting.com/stat/permutation-without-repetition", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 5,
"r": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/permutation-without-repetition",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 5,
"r": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/permutation-without-repetition", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":5,"r":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":5,"r":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/permutation-without-repetition", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 5,
"r": 3
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.permutation_without_repetition",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_n | 10000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
計算機が n! / (n − r)! を評価し n と r を検証する方法
必須の整数フィールド n と r を含む JSON 本体を送信してください。r が n より大きい場合、繰り返しが禁じられているときに存在する数より多くを選べないため、要求は直ちに invalid_input で失敗し、その失敗した呼び出しは課金されません。欠落フィールド、非整数、負値、上限超過も、該当フィールドを示して invalid_input で失敗します。積は安全な整数範囲に収まるときは JSON の数として、そうでなければクライアントが高位桁を浮動小数点の丸めで失わないよう十進文字列として返されます。
重複なしの数え上げが使われ、課金され、届く場所
離散数学の学習、コンテスト解答の確認、コンピュータ代数系を入れずに非復元抽出を説明するときに、即時で厳密な P(n,r) が欲しければブラウザツールを使ってください。受理インデックスはゼロから一万までなので、教室デモや組合せフィルタが病的な積による無制限のメモリ増加なしに実用的です。言語モデルも外部算術サービスも乱数もなく、継続的インテグレーションの検査や再現可能な教材に固定しても安全です。スクリプト、宿題チェッカー、面接準備プラットフォーム、授業ページが単一契約下で多くの対に安定した JSON を必要とするときは API を使ってください。成功した要求はそれぞれ $0.002 で請求される一項目で、検証失敗は残高を消費しません。結果は完全に決定的で、同じ n と r は常に同じ数え上げ・記法・公式フィールドを返します。
技術的な質問
重複なし順列の計算機は無料ですか。
ブラウザツールはお使いの端末で無料です。API 呼び出しは成功した項目ごとに $0.002 の前払い KIT 残高を使い、検証失敗は課金されません。