重複順列
記号を繰り返し使える並びの数を求めます。5種類の記号で3か所を埋めると125通りで、5^3です。暗証コードやパスワードの組み合わせ数と同じ考え方です。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 相異なる記号の個数
- 5
- 抵抗(Ω)
- 3
- 値
- 125
- 数量
- 125
重複順列は次の単純な数え上げに答えます。n個の相異なる記号があり、同じ記号が複数回現れてもよい長さrの順序付き列を作るとき、列は何通りあるでしょうか。積の法則により、r個の各位置でn通りの選び方があるため、総数はちょうどnのr乗になります。この式はパスワード空間、PINコード、固定長文字列の彩色、復元抽出、そして答えが浮動小数の近似ではなく厳密な整数でなければならない離散数学の課題で繰り返し現れます。本機能は正の整数n(alphabetの大きさ)と非負整数r(列の長さ)を受け取り、BigInt演算で求めた厳密な個数を十進文字列として返します。通常の安全な整数の限界を大きく超える値でも桁ごとに正しいままです。nが1未満、またはrが負の入力は、誤った答えを黙って返すのではなく、明確な検証エラーで拒否します。
重複順列の定義
繰り返しを許したn個の記号からr個の位置への順序付き選択とは、各siが大きさnの固定集合に属する任意の列s1, s2, …, srです。順序が意味を持ち記号の再利用も許されるため、第1位置にはn通り、第2位置にも再びn通り、とr位置まで続きます。
基本的な数え上げ原理により、これらの独立した選択がn × n × … × n、すなわちnのr乗に掛け合わされます。rがゼロのときは空列がちょうど1つ存在し、任意の正のnの0乗が1であるという代数上の慣習と一致します。
これは再利用を禁じ、下降階乗n × (n − 1) × … × (n − r + 1)を与える重複なし順列とも、順序を無視する組合せとも異なります。教科書の定番確認では、記号2個・長さ3で8通り、記号5個・長さ2で25通り、記号10個・長さ0で1通りとなります。
本実装は浮動小数の累乗・近似対数・標本化を用いず、二進BigIntべき乗で厳密な整数累乗を計算し、すべての桁を正しく保ちます。経路は完全に決定的で、乱数シード・時計・ネットワーク・モデルのドリフトがなく、同じnとrは常に同じ文字列を返します。
宣言された上限はnを1から1万、rを0から1万に保ち、最悪時の遅延を無料ブラウザツールと軽量Worker経路に適したままにしつつ、競技・教室・パイプライン向けの厳密な大件数にも対応します。
nのr乗の数え上げが実務で現れる場面
セキュリティとプロダクトのチームは、各文字位置を大きさn・長さrのalphabetからの選択とみなしてパスワードやPINの空間を見積もります。これはまさに重複順列の個数nのr乗であり、厳密な整数は対数近似なしで方式の強度を比較する助けになります。
プログラミング競技や離散数学の授業では、n文字のalphabet上の長さrの語の数、順序が意味を持ち色の繰り返しが許されるn色によるr個の玉の彩色、大きさrの集合から大きさnの集合への関数の数など、いずれもnのr乗に等しい問いが繰り返し出ます。
復元を伴う順序付き抽出をモデルするデータ・標本化パイプラインも、標本空間の見積もりやモンテカルロ設定を解析的総数と照合するときに同じ積を必要とします。教育者や面接対策では小さなnとrの表を示すことが多く、1回の呼び出しで個数を求めると対話デモが教科書や解答キーと揃います。
後から重複なし順列、反復の有無を問わない組合せ、個数ではなく実タプルの列挙が必要なら、本ページに詰め込まず別の検索意図として扱ってください。
活用例
パスワードとPINの空間サイズ
固定長コードの厳密なn^r alphabet空間を求め、浮動小数の対数近似なしで方式の大きさを比較します。
競技・宿題用フィクスチャ
オリンピック問題、離散数学の演習、自動採点の解答キー向けに、順序付き・繰り返しありの厳密な個数を生成します。
標本化と関数の数え上げ
復元ありの順序付き標本空間を見積もり、設計レビュー向けにr位置からn記号への関数を数えます。
よくある質問
重複順列とは何ですか?
同じ記号が複数回現れてもよい、n個の記号から長さrで取り出した順序付き列です。総数はちょうどnのr乗です。
重複なし順列との違いは何ですか?
重複なしでは各記号は高々1回しか使えず、下降階乗n×(n−1)×…×(n−r+1)になります。重複ありでは再利用が許されるため、個数はn^rです。
nが1未満、またはrが負のときはどうなりますか?
本計算機はn ≥ 1かつr ≥ 0を要求し、無効な境界は拒否され課金されません。
個数が数値ではなく文字列なのはなぜですか?
累乗はJavaScriptの安全な整数をすぐに超えます。十進文字列なら大きなn^rでも各桁を厳密に保てます。
2種類の記号で長さ3の並びはいくつ作れますか?
8通りです。3か所それぞれに2つの選択肢があるので、2×2×2になります。5種類で長さ2なら25通り、10種類で長さ0なら1通りです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/combo/permutations-with-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/combo/permutations-with-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/combo/permutations-with-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/combo/permutations-with-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/combo/permutations-with-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": "combo.permutations_with_repetition",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
min_n | 1 |
max_n | 10000 |
min_r | 0 |
max_r | 10000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
無料のブラウザツールと有料APIは同一の純粋関数を共有するため、教室デモと自動パイプラインが同じ組で食い違うことはありません。
送るものと返るもの
記号数nは1以上1万以下の整数、長さrは0以上1万以下の整数でなければなりません。成功時の応答には、常に正規化されたnとr、nのr乗の厳密な十進文字列としてのcountとvalue、および表示用の短いformula文字列(例:five caret three)が含まれます。宿題や素早い健全性確認には無料ブラウザツールを使い、件数用フィクスチャを大量生成する必要があるときは同一契約をスクリプトから呼び出してください。必須の整数nをフィールドn(aliases symbols または alphabet)に、必須の整数rをフィールドr(aliases length または k)に指定してください。欠落フィールド、非整数、小数、1未満のn、負のrはinvalid_inputで拒否され、課金されません。エラーメッセージは問題のフィールドと破られた規則を明示するため、フォームクライアントやスクリプトは推測なしに入力を直せます。例:nが2でrが3ならcountは8、nが5でrが2ならcountは25、nが10でrが0ならcountは1、nが1でrが任意の有効長ならcountは1、nが0ならalphabetサイズが1未満のためinvalid_input、rが−1ならinvalid_inputです。契約は安定したJSONで、単体テスト・教室デモ・一括パイプラインに適します。成功したAPI呼び出しの料金は公開ベースの$0.002/件で、検証失敗は前払い残高を消費しません。
nのr乗の数え上げが実務で現れる場面
本機能は純粋なparseエンジンであるため、API料金は成功1件あたり公開ベースの$0.002で、検証失敗は残高を消費しません。
技術的な質問
料金はいくらですか?
ブラウザツールは無料でローカル実行です。APIリクエストは前払いKIT残高を成功1件あたり$0.002で使用し、無効入力は課金されません。