シュテルン二原子 / Stern–Brocot 数列
番号を入れると、シュテルンの二原子数列の任意の項が分かります。s(10) は3です。番号を毎回半分にしていく整数の計算なので、大きな番号でも正確な値が出ます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 10
- シュテルン
- 3
- 漸化式
- s(0)=0; s(1)=1; s(2k)=s(k); s(2k+1)=s(k)+s(k+1)
シュテルンの二原子数列は、正の有理数の Stern–Brocot 木と密接に結びつく古典的な整数列です。二つの初期値と添字の偶奇による分割規則で定義されます。s(0)=0、s(1)=1。添字が偶数で 2k のとき項は s(k)、奇数で 2k+1 のとき項は s(k)+s(k+1) です。得られる列は 0,1,1,2,1,3,2,3,1,4,3,5,2,5,3,4 から始まり、連続項が常に互いに素であるという顕著な性質を持ちます。
シュテルン二原子数列とは何か、偶奇漸化式の働き
初期値 s(0)=0 と s(1)=1 から始めます。以降の添字では規則は偶奇のみに依存します。同じ値が半分の添字に現れます。
数段ほど展開すると 0,1,1,2,1,3,2,3,1,4,3,5,2,5,3,4,1,5,4,7,3 などが得られます。隣接対は常に互いに素で、正の有理数はすべて列を辿るとき連続比 s(m)/s(m+1) としてちょうど一度現れ、その列挙は幅優先で平坦化した Stern–Brocot 木そのものです。
同じ漸化式は提示の仕方により Calkin–Wilf または Stern–Brocot 数列とも呼ばれます。本ツールは s(0)=0 の標準二原子形を使います。各段は厳密な整数加算または添字の半分だけなので、丸め誤差も壁時計や乱数種への依存もありません。
単一項だけが必要なときは添字nを送ってください。応答はn、シュテルン値、偶奇ケースの短い式文字列、採点者や生徒が手や紙で再計算できる完全な漸化式初期値の説明を返します。
活用例
プログラミングコンテストと面接準備の検証器
シュテルン数列や Stern–Brocot 木問題の候補解を、漸化式を各言語ハーネスに再実装せずにアサートします。
互いに素な連続対と有理数列挙の授業デモ
授業でn, stern, formula, recurrenceを投影し、初期値・偶奇規則・連続比が正の有理数を覆う様子を見せます。
よくある質問
シュテルンの二原子数列とは何ですか?
s(0)=0, s(1)=1, s(2k)=s(k), s(2k+1)=s(k)+s(k+1) で定義される数列です。0, 1, 1, 2, 1, 3, 2, 3, 1, 4, 3, 5, … で始まり Stern–Brocot 木と結びつきます。
なぜ Stern–Brocot と呼ばれるのですか?
連続対 s(n)/s(n+1) を辿ると正の有理数がちょうど一度ずつ現れ、分数の Stern–Brocot 木と同じ構造になります。数列自体はシュテルン二原子数列です。
s(0) と s(1) は何ですか?
ここで使う規約では s(0)=0, s(1)=1 です。以降の項は偶奇添字規則に従います。応答は常に漸化式をエコーし初期値を明示します。
s(10) を手で計算するにはどうしますか?
番号が偶数なら半分にし、奇数なら2つに分けます。10は偶数なので s(10) は s(5) に等しく、5は奇数なので s(5) は s(2) と s(3) の和、つまり1と2で3です。
隣り合う項に共通の約数がないのはなぜですか?
隣り合う2項がいつも互いに素であることは、この数列の性質です。そのため隣同士の比 s(m) / s(m + 1) は、すべての正の分数を既約の形でちょうど1回ずつ並べます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/stern-brocot \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":10}'const res = await fetch("https://api.kit.forhosting.com/math/stern-brocot", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/stern-brocot",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/stern-brocot", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/stern-brocot", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 10
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.stern_brocot",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_n | 1000000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
本機能は第nの厳密なシュテルン値を決定的なJSONオブジェクトとして返します。数式処理パッケージも浮動小数近似もネットワーク呼び出しもなく、宿題チェッカー・コンテスト検証器・授業デモはブラウザ無料ランナーと前払いAPIで同じ純粋整数結果を見ます。
シュテルン二原子数列とは何か、偶奇漸化式の働き
nが偶数なら n=2k と書き s(n)=s(k) と置きます。nが奇数なら n=2k+1 と書き s(n)=s(k)+s(k+1) と置きます。負の添字はこの古典的非負数列の一部ではなく、符号付き拡張を作らず invalid_input で拒否します。
APIの呼び出し方と返ってくる内容
nは最大十億の非負整数で、欲しいシュテルン項の添字です。成功応答にはエコーされたn、s(n)に等しい stern、コンパクトな偶奇規則の formula、初期値と s(2k)=s(k) および s(2k+1)=s(k)+s(k+1) を記した recurrence が含まれます。宿題パイプライン、プログラミングコンテスト検証、面接準備サンドボックス、ノートブック充実ジョブ、専門数列パッケージを各マシンに入れずに再現可能なシュテルン項が必要な任意のワークフローからご利用ください。nは公開上限内に保ってください。その上限を超える多倍長添字には、この軽量parse機能ではなく専用の大きな整数スタックを使ってください。必須フィールドn一つのJSON本体を送ってください。aliases index と order も同じ意味で受け付けます。検証失敗 — n欠落、非整数、分数、公開上限十億超、負数 — は invalid_input を返し課金されません。料金は成功リクエストごとに定額 $0.002 で、単位項目・限界単価ゼロです。偶奇ウォークはnに対して対数的なので、1リクエストはWorkerとブラウザで安く済みます。
実践のヒント、制限、関連検索
授業では対の例を優先してください。本キットの姉妹ページはパドヴァン数・三角数・多角形数・等差級数和など他の数列・図形意図を扱い、本ページは Stern–Brocot 数列計算機・シュテルン二原子数・シュテルン数列の第n項を探す方向けです。整数だけをブラックボックスにせず、指導時は文書化された偶奇規則と組み合わせ、代替のOEISオフセットをここで使う s(0)=0 の規約と混同しないでください。n=0は0、n=1は1、n=10は3、n=15は4、負のnは invalid_input による厳しい拒否経路を示します。連続項は常に互いに素なので、生徒は小さなnで s(n) と s(n+1) のgcdを手計算しAPIと照合できます。採点では stern フィールドと formula 文字列の両方をアサートし、誤った漸化式やフィボナッチとの混同を診断しやすくしてください。invalid_input を返す失敗タスクは前払い残高を消費しないため、契約学習中の誤入力でも探索スクリプトを安く保てます。nを十億に上限し各リクエストを有界に保ち、より大きな添字が必要ならこの無料parse経路の外の大きな整数ツールに切り替えてください。
連携の活用例
宿題: 第nのシュテルン二原子項を計算
生徒に添字を与え、同じ偶奇漸化式と初期値で手計算のシュテルン値を決定的なAPIまたは無料ブラウザ結果と照合します。
技術的な質問
どの入力が拒否されますか?
n欠落、非整数、1_000_000_000 超、負数は invalid_input を返します。これらの失敗は課金されません。
Stern–Brocot 数列計算機は無料ですか?
ブラウザツールは無料でローカル実行です。API呼び出しは成功リクエストごとに$0.002の前払いKIT残高を使い、失敗は課金されません。