フィボナッチ数列
生成処理はすべてブラウザ内で完結します。データは送信されません
各項は前の 2 項の和です:0, 1, 1, 2, 3, 5, 8, 13… 添字は 0 から:F(0) = 0、F(1) = 1。 世間には 2 つの流儀があり、「F(1) = 1, F(2) = 1」と「F(0) = 0, F(1) = 1」では同じ「10 番目」が 1 つずれます。これは小さな話ではありません —— 添字計算に使うときは 1 つのずれがそのまま誤りになります。ここでは国際標準の 0 起点(ISO 80000-2)を採用し、各行に添字を書き出します(`F(10)`)。どちらの流儀かが一目で分かります。 なぜ BigInt が必要か。 F(79) はすでに 2⁵³ に近く、F(80) で超えます。超えると普通の数値は下の桁を黙って落とします:F(100) を普通の数値で計算すると 354224848179262000000 になり、正しい値は 354224848179261915075 です。桁数も先頭も合っていて、異常は見えません。そしてフィボナッチは、まさに「つい 100 項まで計算してみる」数列です。 「逆引き」は逆方向の問いに答えます:この数は数列に含まれるか、含まれるなら何番目か。
機能
- 4 通りの調べ方:先頭 N 項、N 番目、a 番目から b 番目、ある数の逆引き
- 添字は 0 起点で、各行に添字を表示(`F(10)`)するため流儀の混同が起きません
- 最初の 2 項を変更可能(既定 0、1)。2、1 を入れるとリュカ数(2, 1, 3, 4, 7, 11…)になります
- 全体を通して BigInt:1000 項の 209 桁も 10000 項も正確
- フィボナッチ数でない場合、どの 2 項の間にあるかを示します
- 逆引きは桁区切りのカンマや空白も受け付けます
- 範囲を逆に書いても(a > b)動作します
- 一度に最大 500 項まで。超えた分は残り件数を明示します
- 行ごとにコピーできます
使い方
- 調べ方を選びます:先頭 N 項、N 番目、範囲、逆引き
- 対応する数値を入力します
- 結果は即座に表示されます。行のコピーボタンで 1 項だけ取り出せます
よくある質問
- F(1) は 1 ですか、0 ですか?
- どの流儀によるか次第です。このツールは F(0) = 0、F(1) = 1 を使います(ISO 80000-2 の書き方で、多くのプログラミング解説と同じです)。もう 1 つの一般的な流儀は F(1) = F(2) = 1 で、1 から番号を振ります。数列そのものは同一で、番号が 1 つずれるだけです。そのため各行のラベルに添字を書いています(`F(10)`)—— 得られた 55 が 10 番目なのか 11 番目なのか、すぐ分かります。
- 普通の数値だと間違うのはなぜですか?
- JavaScript の通常の数値は倍精度浮動小数点数で、有効桁数が 53 ビットしかないためです。F(80) = 23416728348467685 はすでにその範囲を超えており、普通の数値にすると 23416728348467684 になります。厄介なのは、エラーも例外も出ず、黙って 1 だけ小さくなることです。このツールは全体で BigInt を使うため、何桁でも正確です。
- 何項まで計算できますか?
- 添字の上限は 10000 です(F(10000) は 2090 桁で、画面には収まりません)。上限は出力の都合です —— それ以上並べると結果欄もコピー内容も使えない大きさになります。逆引きも同じ上限の中で探し、それを超える数は「数列にない」と明示します。探し切ったふりはしません。
関連ツール
素数
生成素数かどうかの判定、素因数分解、N 番目の素数、範囲内の素数の列挙、素数をランダムに生成。大きな数はミラー-ラビン法で高速に判定します。
乱数ジェネレーター
生成範囲・個数・小数桁を指定して乱数を生成します。重複の排除、並べ替え、2・8・16 進数での出力にも対応。乱数源は暗号学的乱数です。
基数変換
変換2・8・10・16・36・64 進数を相互変換。6 通りの結果を一度に表示し、19 桁のスノーフレーク ID も正確に扱えます。すべてブラウザ内で処理します。
UUID 生成
生成UUID v4・v7・v8・ULID・NanoID・CUID・ショート ID・MongoDB ObjectId を一括生成。乱数はブラウザの暗号 API から取得し、通信も記録もしません。
ダミーテキスト
生成ダミーテキストを生成します。Lorem ipsum・英語の文・中国語・日本語のダミー文から選べます。段落・文・単語単位で出力。すべてブラウザ内で生成します。
モックデータ
生成「フィールド名:型」を数行書くだけで、形式が本物そっくりのモックデータをまとめて生成。JSON・CSV・TSV・SQL・XML・YAML・TOML で出力できます。