マヤ数字変換:10進数を点と棒で表示
マヤ数字変換ツールは、0以上の10進整数を、点・棒・ゼロを表す貝形記号で構成された明確な20進表記へ変換します。結果には、最上位の20の累乗から1の位まで、すべての位が順番に表示されます。そのため、授業、手書きの計算の確認、独自の数字デザインに便利です。各行には累乗、桁の値、記号の構成要素が含まれます。変換処理は決定的で、ブラウザー内では非公開のまま実行されます。自動化されたAPIリクエストは1回$0.002です。
無料で実行
マヤ数字を20進数としてお読みください
マヤ数字は一般的な10進数と同じく位取り記数法を使いますが、各位の価値はその一つ下の位の20倍です。最下段、つまり最下位の行は1の位、その上は20のまとまり、さらに上は400のまとまりを表し、以後も同様に続きます。この変換ツールは、多くのデータ形式で扱いやすい順序で行を返します。最上位の行が先頭、1の位が末尾です。このため、書かれた数字の縦方向の関係を保ちながら、配列を左から右へ処理できます。一つの行では、点が1、棒が5を表します。1から19までは、最大3本の棒と最大4個の点を組み合わせます。0には貝形記号を使うため、値のない位も見失いません。powerフィールドはその行が占める20の累乗を、valueは0から19までの桁を示します。symbolsには、分解方法を推測せずに数字を描画または説明するための部品が入ります。
10進数の入力を選択して検証してください
numberという名前のフィールドを一つ指定し、0以上のJSON整数を入力してください。0は有効で、貝形記号を含む1行を返します。空の結果にはなりません。この表記は0以上の整数だけを対象とするため、負の値は受け付けません。小数、"429"のような数字の文字列、欠損値、無限大、JavaScriptで安全に扱える整数範囲を超える値も、丸めたり暗黙に読み替えたりせず拒否します。採点、保存、図版作成に使う場合、この厳密さが重要です。数字に見えるだけの値が、誤って別のマヤ数字へ変わることを防ぎます。変換に成功すると、元の数、基数20、最大の累乗から最小の累乗までの行が返ります。途中の0も必ず残ります。0以外の二つの行の間から貝形記号を除くと、数値そのものが変わるためです。したがって、構造を機械的に検証する場合も、記号を手で写す場合も、一貫した規則をご利用いただけます。
返された行を描画・検算・再利用してください
伝統的な縦書きで表示するには、返された最初の行を最上部に置き、配列の順番どおり下へ並べてください。0以外の各行では、点を棒の上に描きます。symbols配列は、点が必要な場合に結合した点トークンを先に示し、その後に5のまとまりごとに棒トークンを一つ示します。0の記号は貝形だけです。valueフィールドはアクセシビリティー用ラベルやデバッグに役立ち、powerフィールドを使えば教材図の横に位の値を表示できます。検算するには、各行の値に20のpower乗を掛け、すべての積を足してください。合計はnumberと一致する必要があります。アルゴリズムは整数除算と余りだけを使用し、ネットワーク、乱数、時刻、地域設定、可変状態には依存しません。そのため、同じ入力からは常に同じJSONが得られます。学習プリント、博物館展示、静的サイトのビルド、デザインツールにも安定して利用できます。個別の変換はブラウザーが便利で、自動処理のAPI料金は1リクエスト$0.002です。
活用例
授業用の例題を準備します
練習問題の10進値を、学習者が描いて検算できる明確な位の行へ変換します。
歴史的な数字の図案を作成します
順序付けられた点・棒・貝形記号を、視覚レイアウト用の再現可能なデータとして使います。
手作業の変換を確認します
手書きの20進数字を、返された各行の値と累乗に照らして確認します。
よくある質問
どのような入力を使用できますか?
numberフィールドには、安全な整数範囲内の0以上のJSON整数を指定してください。
0はどのように表されますか?
0の場合、valueが0で、symbols配列に貝形記号を含む1の位の行を返します。
どの行が最初に表示されますか?
行は最大の20の累乗から0乗まで並び、最上位の行が先頭になります。
長期暦の位取り調整を使用しますか?
いいえ。純粋な20進法で変換し、暦固有の位の値は適用しません。
APIによる変換の料金はいくらですか?
APIは1リクエスト$0.002です。ブラウザーツールでは同じ決定的な変換をローカルで実行します。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/mayan-numeral \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":429}'const res = await fetch("https://api.kit.forhosting.com/math/mayan-numeral", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": 429
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/mayan-numeral",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": 429
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/mayan-numeral", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":429}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":429}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/mayan-numeral", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"number": 429
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.mayan_numeral",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |