階乗進数
整数と階乗進数を相互に変換できます。23は3:2:1:0、つまり3210!で、3×3!、2×2!、1×1!を足すと23になります。各桁はその位で使える数字の上限と照合されます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 値
- 23
- 値
- 23
- 計算モード
- To factoradic
- 入力
- 23
- 10進数
- 23
階乗進変換を決定的なparseで実装します。値と必要ならモードを入れ、ネットワークなしで正確に変換します。
累乗ではなく階乗で数える
10進数では、各位の重みが1つ前の10倍になります。階乗進数では、各位の重みが階乗になり、右端の位が0!、次が1!、さらに2!、3!と続きます。また、各位の数字はその位の番号を超えられません。0番目の位には0だけ、1番目には0か1、2番目には0から2が入ります。この決まりがあるので、0以上の整数は10進数と同じく、ただ1通りに書き表せます。たとえば23は、3×3!、2×2!、1×1!、0×0!を足したもので、3:2:1:0、短く書くと3210!です。ツールはこの展開も表示するので、計算を自分で確かめられます。
使いどころとよくある間違い
階乗進数は、順列に順位を付ける土台です。順列のレーマー符号は階乗進数そのものなので、プログラミングコンテストや組み合わせ論の授業、リストのあらゆる並べ方に番号を付ける場面で使われます。最も多い間違いは、位の番号より大きい数字を書くことで、たとえば2番目の位に3を入れる場合です。ツールはこれを黙って直さず、受け付けません。また、23は10進数とも数字の並びとも読めるため、変換の向きは必ず指定してください。ツールが推測することはありません。負の数、小数、指数表記は受け付けず、扱えるのは四十桁までです。
何をするか
符号化や基数変換はよく検索されます。階乗進変換はdecimal↔factoradicを厳密検証付きで実行します。状態や時計はありません。
Webフォームは8言語ラベルのparamsを出します。
仕組み
任意項目はnullではなく省略です。paramsとcap.jsonの制限をコードで守ります。cap:verifyのパリティとランタイムスモークで見えるのに計算しないを防ぎます。
使うとき
説明どおりの正確な変換が必要なときに階乗進変換を使います。鍵付き暗号一式の代替ではありません。他のenc系と組み合わせ、サイズ制限とモードを文書化してください。
サブスクはなく成功課金のみです。
活用例
階乗進変換の授業。
階乗進変換の授業。
符号化の単体テスト。
符号化の単体テスト。
テキスト処理ユーティリティ。
テキスト処理ユーティリティ。
よくある質問
23を手計算で階乗進数にするには?
1、2、3と順に割り、余りを書き留めながら商で計算を続けます。23の余りは0、1、2、3で、最後から逆に読むと3:2:1:0になります。
階乗進数を10進数に戻すには?
各桁の数字にその位の階乗を掛けて足します。3210!なら18と4と1と0で、合計23です。数字はコロン、空白、カンマで区切るか、感嘆符を付けた短い形で入力できます。
階乗進数の最後の桁がいつも0なのはなぜですか?
いちばん下の位の重みは0!で、各位の数字はその位の番号を超えられないからです。0番目の位に入るのは0だけなので、階乗進数は必ず0で終わります。
階乗進数と順列にはどんな関係がありますか?
順列のレーマー符号は、実質的に階乗進数です。そのため、n個を並べるn!通りの順序に、抜けも重なりもなく順位を付けられます。順位を階乗進数にするとレーマー符号が得られ、その逆もできます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/factoradic \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"23"}'const res = await fetch("https://api.kit.forhosting.com/enc/factoradic", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "23"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/factoradic",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "23"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/factoradic", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"23"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"23"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/factoradic", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"value": "23"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.factoradic",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_places | 40 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
APIは成功あたり$0.002、無料Webは同じ同型コアです。
何をするか
invalid_inputで黙った誤出力を防ぎます。
仕組み
検証後に核が変換し安定したJSONを返します。APIは成功あたり$0.002です。
技術的な質問
決定的ですか?
はい。同じ入力で同じ出力です。
通信やAIは?
いいえ。parseのみです。
不正入力は?
invalid_inputです。
料金は?
APIは成功あたり$0.002、Webは無料。
ウィジェットは?
はい。同じlib.jsのTier Aです。