ヤコブスタール数計算ツール
0から40までの整数nを入力すると、n番目のヤコブスタール数が正確に分かります。数列は0、1、1、3、5、11、21、43と続き、J(40)は366503875925です。各項は直前の項に、その前の項の2倍を足した値です。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 添字 n
- 0
- ヤコブスタール数
- 0
0 以上 40 以下の整数 n 一つから、第 n 番目のヤコブスタール数を計算します。ツールは閉じた形の式 J(n) = (2^n - (-1)^n)/3 を用いて n とその value を返します。これは漸化式 J(n) = J(n-1) + 2·J(n-2) と等価です。
ヤコブスタール数列
ヤコブスタール数は J(0) = 0、J(1) = 1 から始まり、漸化式 J(n) = J(n-1) + 2·J(n-2) に従って、0, 1, 1, 3, 5, 11, 21, 43, 85, 171, 341 と続きます。連続するヤコブスタール数は 2 のべき乗のすぐ上と下を交互に取るため、各項は前の項のおよそ 2 倍になります。
これらは 2^n/3 に最も近い整数です。他の入力はなく、丸めのオプションもありません。ヤコブスタール数は厳密な整数だからです。
value の計算方法
実装は漸化式を反復するのではなく、閉じた形の式 J(n) = (2^n - (-1)^n)/3 を直接評価します。任意精度の BigInt 演算で 2^n を計算し、n が偶数なら 1 を引き、奇数なら 1 を足し(これが (-1)^n の項です)、3 で割ります。2^n - (-1)^n は 3 で割り切れることが証明できるため、この除算は常に厳密です。
厳密な BigInt の結果はその後 JavaScript の数値へ変換されます。J(40) は 366503875925 であり、限界を十分に下回ります。これがこのツールが決定的で再現可能である理由であり、多数の先行項を足し合わせることによる浮動小数点の誤差の蓄積もありません。
活用例
組合せ論と数論
タイル張り、カニンガム鎖、2 進的な恒等式を扱う際に、厳密なヤコブスタール項を参照できます。
数列と OEIS の作業
J(n) の参照値を生成し、ローカルのライブラリなしにコードや公式を A001045 と照合できます。
漸化式の指導
各 n について、閉じた形の式 (2^n - (-1)^n)/3 が J(n) = J(n-1) + 2·J(n-2) と一致することを示せます。
よくある質問
何が返りますか?
あなたの n と、J(n) = (2^n - (-1)^n)/3 から計算された第 n 番目のヤコブスタール数 value を含むオブジェクトです。
なぜ n は 40 までなのですか?
厳密な BigInt の結果を 2^53 の安全整数の範囲に収めるためです。J(40) は 366503875925 で、精度の損失はありません。
結果は厳密ですか?
はい。 ヤコブスタール数は整数であり、3 での除算は常に厳密なので、丸めは一切ありません。
ヤコブスタール数はどんな分野で使われますか?
組合せ論や数論で、敷き詰めの問題、カニンガム鎖、2進的な恒等式などに現れます。自作のプログラムや式を公開数列A001045と照らし合わせる参照値としても便利です。
1項ずつ計算せずに求める式はありますか?
あります。2のn乗を計算し、nが偶数なら1を引き、奇数なら1を足して3で割ります。J(3)なら8に1を足して9、それを3で割って3です。この割り算は必ず割り切れます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/jacobsthal-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5}'const res = await fetch("https://api.kit.forhosting.com/math/jacobsthal-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/jacobsthal-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/jacobsthal-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/jacobsthal-number", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.jacobsthal_number",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
ヤコブスタール数列
この計算ツールは必須フィールド n を通じて 0 以上の整数 n を一つ受け取り、その n をそのまま返したオブジェクトと、数列の第 n 項である value を返します。
value の計算方法
定義域を n = 40 で打ち切っているのは、まさに答えを 2^53 の安全整数の範囲内に収め、この変換で精度を決して失わないためです。
入力規則とエラー
唯一のフィールド n は、0 以上 40 以下の閉区間に収まる整数でなければなりません。それ以外は "n inválido" というメッセージを伴う型付きの invalid_input エラーを送出します。負の値、40 を超える値、2.5 のような整数でない値、文字列、フィールドの欠落は、いずれも計算が走る前に同じチェックで失敗します。decimals パラメータも省略可能な設定もないため、リクエストは最小限で曖昧さがありません。計算例では n = 0 を渡し、数列の第 1 項である value 0 を受け取ります。検証が前段で行われ、算術が厳密であるため、失敗は低コストで安全に再試行でき、機械可読なエラーコードによってクライアントは不正なリクエストと通信の問題とを区別できます。
技術的な質問
どのような入力が不正ですか?
整数でない値、負の値、40 を超える値、または n の欠落は、"n inválido" と表示される型付きの invalid_input エラーを返します。
無料ですか?
ブラウザでは tier A widget として無料です。決定的な API は成功した呼び出し 1 回あたり $0.002 かかり、失敗したタスクは課金されません。