パンデジタル数判定
数がその基数のすべての数字をちょうど1回ずつ使っているかを調べます。1023456789は10進法でパンデジタル数ですが、1から9までの数字だけの数は0がないので違います。ある数字と足りない数字を、基数2から36で表示します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 1,023,456,789
- 基数
- 10
- 桁数
- 10
ある基数におけるパンデジタル数とは、その基数のすべての桁記号をちょうど一度ずつ使い、欠落も重複もない数です。十進では〇から九までの十個の記号が各一度、二進では〇と一のビットが各一度、十六進では〇から十五までの値が位取り展開にちょうど一度ずつ現れます。本機能は非負整数を二から三十六までの基数で桁に変換し、桁の重複があれば厳格に失敗し、そうでなければ順序付き桁リスト、存在する記号、欠落、完全パンデジタルか否かの明確な真偽値を返します。学生、競技出題者、パズル解答者は、数式処理ソフトや不透明なライブラリなしで決定的な監査結果を得られます。
選んだ基数におけるパンデジタルの意味
非負整数 n を基数 b で書き、その桁の多重集合を見ます。その基数の完全な記号集合は〇、一、二、…、b マイナス一です。数が完全にパンデジタルであるとは、その多重集合が完全集合とちょうど一度ずつ一致すること、すなわち必要な桁がすべて現れ、欠落がなく、どれも二度現れないことです。
十進の古典例には十億二千三百四十五万六千七百八十九があり、その十進表記は一-〇-二-三-四-五-六-七-八-九で、各十進桁を一度含みます。一 二 三 四 五 六 七 八 九のような九桁の並びは多くのパズルで興味深いですが、ここでは〇が無いため十進の完全パンデジタルではありません。
二進では整数二は一-〇と書けてパンデジタル、三は一-一と書けて桁一が重複するため拒否されます。定義は固定で決定的です。標本化も乱数も近似浮動小数もロケール依存の数字書式もありません。
正の整数の位取り展開に先頭の〇は現れないため、〇を含む完全集合が必要なとき〇は先頭以外の位に置かれます。そのため有名な十桁パンデジタルの多くは非零の桁で始まり、〇を最初の位の後ろに置きます。
実務上の注意、制限、関連検索
数十桁の多倍長候補が必要な場合は専用の多倍長整数スタックを使ってください。この軽量 parse 機能は対話的な確認と教材規模の入力向けです。指導では両方の結果を示してください。
一 〇 二 三 四 五 六 七 八 九のような完全十進パンデジタル、〇を欠く惜しい例、小さな二進の成功、桁重複の拒否で、学習者が厳格なエラー経路を見られます。本キットの隣接する数論ページは Armstrong/ナルシシスト判定、アリクォート和、モジュラ指数など別意図向けです。本ページは与えられた整数がパンデジタルか、どの基数桁が欠けるかを探す人向けです。
真偽値だけをブラックボックスにせず、採点時は missing と digits と組み合わせ、部分点や誤った基数仮定を診断しやすくしてください。「1から9のパンデジタル」パズルは設計上〇を省きます。
活用例
競技プログラミングと Project Euler の検証器
古典的パンデジタル問題の候補解を、言語ごとのハーネスで基数変換と重複検出を再実装せずにアサートできます。
位取り桁集合の教材デモ
授業で present と missing 配列を投影し、どの基数記号が現れ、どれが欠落し、なぜ重複が契約違反かを学習者に示します。
よくある質問
パンデジタル数とは何ですか?
基数 b において、桁が記号 0 から b−1 をちょうど一度ずつ使う非負整数です。基数 10 では桁 0–9 が各一度現れます。
このツールは基数 10 でゼロを必須にしますか?
はい。 ここでの完全パンデジタル形は集合 0..base−1 全体を必要とします。
パンデジタル数チェッカーは無料ですか?
ブラウザツールは無料でローカル実行です。失敗タスクは課金されません。
1から9までの数字だけの数がパンデジタル数にならないのはなぜですか?
10進法では0から9までの数字がすべて1回ずつ必要ですが、その数には0がありません。結果には足りない数字として0が示されるので、完全なパンデジタル数ではありません。
2進法ではどうなりますか?
0と1がそれぞれ1回ずつ必要です。2は10と書けるのでパンデジタル数ですが、3は11と書けて1が重なるため、条件を満たしません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/pandigital-checker \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":1023456789}'const res = await fetch("https://api.kit.forhosting.com/numth/pandigital-checker", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 1023456789
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/pandigital-checker",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 1023456789
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/pandigital-checker", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":1023456789}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":1023456789}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/pandigital-checker", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 1023456789
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.pandigital_checker",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_n | 999999999999999 |
min_base | 2 |
max_base | 36 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
選んだ基数におけるパンデジタルの意味
応答は missing を〇を含む一元配列とし、is_pandigital を false にします。エンドポイントが部分的な桁リストを捏造することはなく、各貢献は基数による逐次除算の整数剰余です。
APIの呼び出し方と返却内容
契約は、現れる各桁が高々一度の入力にだけ欠落桁を報告することです。宿題パイプライン、プログラミング競技バリデータ、Project Euler 風チェッカー、面接準備サンドボックス、あるいは専用の数論パッケージを各マシンに入れずに再現可能なパンデジタル判定が必要な任意のワークフローからご利用ください。必須フィールド n(〇以上、かつ九千九百九十九億九千九百九十九万九千九百九十九以下の整数で、JavaScriptの安全整数範囲内)と、任意の base(二から三十六の整数、既定は十)を含む JSON 本体を送ってください。n には number と value の別名が、base には radix が使えます。成功時の応答には受理された n と base、最上位から最下位への順序配列 digits、digit_count、見つかった一意桁のソート済み present、〇から base マイナス一までで一度も現れない記号のソート済み missing、missing が空かつ桁数が base に等しいときのみ真の is_pandigital が含まれます。桁が重複すると soft な false ではなく invalid_input で失敗します。n 欠落、非整数、小数、負、二から三十六外の base、または桁重複は invalid_input を返し課金されません。料金は成功リクエストごとに固定の $0.002(単位 item、限界単価ゼロ)です。
実務上の注意、制限、関連検索
基数変換が Worker とブラウザで厳密になるよう、n を公開された安全整数範囲内に保ってください。present と missing が明示配列なので、学生は桁の多重集合を手計算し API と一行ずつ照合できます。本ツールは is_pandigital が true になるには〇から base マイナス一までの完全集合を要求し、唯一の欠落が〇なら missing に〇を報告します。invalid_input を返す失敗タスクは前払い残高を消費しないため、契約を学びながら誤値を入れる探索スクリプトのコストを抑えられます。十を超える基数では JSON 出力に文字グリフではなく十一、十二などの数値桁値を使い、あらゆるクライアント言語で機械可読な応答を保ちます。
連携の活用例
宿題:パンデジタル解答と欠落桁の検証
学生に整数と基数を与え、手書きの桁リスト、欠落記号集合、はい/いいえラベルを決定的な API または無料ブラウザ結果と照合します。
技術的な質問
桁が重複しているとどうなりますか?
タスクは invalid_input で失敗します。重複は is_pandigital false の soft 失敗ではなく、一意でない桁多重集合を契約が拒否します。
どの基数が使えますか?
2 から 36 の整数です。既定基数は 10 です。範囲外は invalid_input を返します。