リュカ数列とは?フィボナッチ数列の双子のような数列を徹底解説

数学

「リュカ数列」という名前を聞いたことがありますか?

フィボナッチ数列は有名ですが、実はそれと双子のような関係にある「リュカ数列」という数列があります。

フィボナッチ数列と同じルールで数を並べていくのに、最初の2つの数だけが違うだけで、全く異なる数列になるんです。

今回は、このリュカ数列について、定義から性質、フィボナッチ数列との関係まで、分かりやすく解説していきます。


スポンサーリンク

リュカ数列とは?

定義

リュカ数列(Lucas sequence / Lucas numbers)とは、次のように定義される数列です。

L₀ = 2
L₁ = 1
Lₙ = Lₙ₋₁ + Lₙ₋₂(n ≥ 2)

つまり、最初の2つの数を 2 と 1 として、3番目以降は前の2つの数を足した数になります。

数列の具体例

実際にリュカ数列を書き出してみましょう。

2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322, 521, 843, 1364, 2207, 3571, 5778, 9349…

  • L₀ = 2
  • L₁ = 1
  • L₂ = 2 + 1 = 3
  • L₃ = 1 + 3 = 4
  • L₄ = 3 + 4 = 7
  • L₅ = 4 + 7 = 11
  • L₆ = 7 + 11 = 18

このように続いていきます。

フィボナッチ数列との比較

フィボナッチ数列は、次のように定義されます。

F₀ = 0
F₁ = 1
Fₙ = Fₙ₋₁ + Fₙ₋₂(n ≥ 2)

数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987…

見比べてみると:

フィボナッチ数列リュカ数列
0番目02
1番目11
2番目13
3番目24
4番目37
5番目511
6番目818

ルールは全く同じ(前の2項を足す)ですが、最初の2つの値が違うだけで、全く異なる数列になるんですね。


リュカ数列の名前の由来

エドゥアール・リュカ

リュカ数列は、フランスの数学者エドゥアール・リュカ(François Édouard Anatole Lucas, 1842-1891)に因んで名付けられました。

実は、「フィボナッチ数列」という名前を付けたのも、このリュカです。

リュカは、フィボナッチ数列を研究していた時に、この数列も発見し、その性質を詳しく調べました。

リュカは数論の研究で知られ、素数判定に関する重要な定理も発見しています。


リュカ数列の一般項

ビネの公式(リュカ数版)

フィボナッチ数列には「ビネの公式」という一般項の公式がありますが、リュカ数列にも同様の公式があります。

Lₙ = φⁿ + (1-φ)ⁿ = φⁿ + (-φ)⁻ⁿ

ここで、φ(ファイ)黄金比です。

φ = (1 + √5) / 2 ≈ 1.618…

また、

(1 – φ) = (1 – √5) / 2 ≈ -0.618… = -1/φ

この式を使えば、n番目のリュカ数を直接計算できます。

例:L₅を計算してみる

φ ≈ 1.618, 1-φ ≈ -0.618 として、

L₅ = (1.618)⁵ + (-0.618)⁵
≈ 11.09 + (-0.09)
≈ 11

実際にL₅ = 11なので、合っていますね。

フィボナッチ数の一般項との比較

フィボナッチ数の一般項

Fₙ = (φⁿ – (1-φ)ⁿ) / √5

リュカ数の一般項

Lₙ = φⁿ + (1-φ)ⁿ

フィボナッチは「引き算して√5で割る」、リュカは「足し算」という違いがあります。


リュカ数列の性質

リュカ数列には、興味深い性質がたくさんあります。

性質1:黄金比への収束

隣り合うリュカ数の比は、黄金比φに収束します。

Lₙ₊₁ / Lₙ → φ(n → ∞)

例:

  • L₁ / L₀ = 1 / 2 = 0.5
  • L₂ / L₁ = 3 / 1 = 3
  • L₃ / L₂ = 4 / 3 ≈ 1.333…
  • L₄ / L₃ = 7 / 4 = 1.75
  • L₅ / L₄ = 11 / 7 ≈ 1.571…
  • L₆ / L₅ = 18 / 11 ≈ 1.636…
  • L₁₀ / L₉ = 123 / 76 ≈ 1.618…

だんだん黄金比(≈1.618)に近づいていくのが分かります。

これは、フィボナッチ数列と同じ性質です。

性質2:フィボナッチ数との関係

リュカ数とフィボナッチ数の間には、様々な関係式があります。

関係式1:隣接するフィボナッチ数の和

Lₙ = Fₙ₋₁ + Fₙ₊₁

つまり、リュカ数は、その項番号を挟む2つのフィボナッチ数の和になります。

例:

  • L₃ = F₂ + F₄ = 1 + 3 = 4 ✓
  • L₅ = F₄ + F₆ = 3 + 8 = 11 ✓

関係式2:積の公式

F₂ₙ = Fₙ × Lₙ

例:

  • F₆ = F₃ × L₃ = 2 × 4 = 8 ✓
  • F₁₀ = F₅ × L₅ = 5 × 11 = 55 ✓

関係式3:フィボナッチ数で表す

Lₙ = √5 × Fₙ(近似)

厳密には、√5 × Fₙ に近い値になります。

性質3:リュカ恒等式

Lₙ² – 5Fₙ² = 4 × (-1)ⁿ

これは「リュカ恒等式」と呼ばれる有名な式です。

例:n = 3の場合

  • L₃² – 5F₃² = 4² – 5×2² = 16 – 20 = -4
  • 4 × (-1)³ = 4 × (-1) = -4 ✓

性質4:奇数と偶数のパターン

Lₙが偶数になるのは、nが3の倍数の時だけです。

  • L₀ = 2(偶数)← 0は3の倍数
  • L₁ = 1(奇数)
  • L₂ = 3(奇数)
  • L₃ = 4(偶数)← 3の倍数
  • L₄ = 7(奇数)
  • L₅ = 11(奇数)
  • L₆ = 18(偶数)← 3の倍数

この規則性は、フィボナッチ数列(3の倍数番目が偶数)と同じです。

性質5:負の添字への拡張

リュカ数列は、負の整数にも拡張できます。

漸化式 Lₙ₋₂ = Lₙ – Lₙ₋₁ を使って、逆向きに計算します。

…, -11, 7, -4, 3, -1, 2, 1, 3, 4, 7, 11, …

  • L₋₁ = L₁ – L₀ = 1 – 2 = -1
  • L₋₂ = L₀ – L₋₁ = 2 – (-1) = 3
  • L₋₃ = L₋₁ – L₋₂ = -1 – 3 = -4

一般に、L₋ₙ = (-1)ⁿ × Lₙ


リュカ素数

リュカ素数とは?

リュカ素数(Lucas prime)とは、リュカ数であり、かつ素数である数のことです。

最初のリュカ素数

2, 3, 7, 11, 29, 47, 199, 521, 2207, 3571, 9349, 3010349, 54018521, 370248451, 6643838879, …

対応する添字は:

n = 0, 2, 4, 5, 7, 8, 11, 13, 16, 17, 19, 31, 37, 41, 47, …

リュカ素数の条件

重要な定理

Lₙが素数ならば、nは0、素数、または2のべき乗でなければならない。

例外:n = 0の場合、L₀ = 2は素数

ただし、逆は成り立ちません。つまり、nが素数でも、Lₙが必ずしも素数になるとは限りません。

例:

  • n = 3(素数)→ L₃ = 4 = 2²(素数ではない)
  • n = 5(素数)→ L₅ = 11(素数)
  • n = 7(素数)→ L₇ = 29(素数)

最大のリュカ素数

2022年時点で、最大の確認されたリュカ素数はL₁₄₈₀₉₁で、これは30,950桁の数です。

また、最大の確率的素数(probable prime)はL₅₄₆₆₃₁₁で、1,142,392桁です。


リュカ数列の特別な数

完全平方数

リュカ数列の中で完全平方数(平方数)になるのは、1と4だけです。

  • L₁ = 1 = 1²
  • L₃ = 4 = 2²

それ以外のリュカ数は、平方数になりません。

三角数

リュカ数列の中で三角数になるのは、1, 3, 5778だけです。

三角数とは、1 + 2 + 3 + … + nの形で表せる数のことです。

  • 1 = 1
  • 3 = 1 + 2
  • 5778 = 1 + 2 + … + 107

立方数

リュカ数列の中で立方数(3乗数)になるのは、1だけです。

L₁ = 1 = 1³


広義のリュカ数列

ここまで説明してきたのは、「狭義のリュカ数」でしたが、実は「リュカ数列」という言葉には、もっと広い意味もあります。

一般化されたリュカ数列

二次方程式 x² – Px + Q = 0 の2つの解をα, βとすると、

Uₙ(P, Q) = (αⁿ – βⁿ) / (α – β)
Vₙ(P, Q) = αⁿ + βⁿ

という2つの数列をリュカ数列(広義)といいます。

有名な数列がすべて含まれる

この広義のリュカ数列には、多くの有名な数列が含まれます。

フィボナッチ数列:U(1, -1)

  • P = 1, Q = -1の場合
  • F₀ = 0, F₁ = 1, Fₙ = Fₙ₋₁ + Fₙ₋₂

(狭義の)リュカ数列:V(1, -1)

  • P = 1, Q = -1の場合
  • L₀ = 2, L₁ = 1, Lₙ = Lₙ₋₁ + Lₙ₋₂

ペル数:U(2, -1)

  • P = 2, Q = -1の場合
  • 0, 1, 2, 5, 12, 29, 70, 169, …

メルセンヌ数:Uₙ(3, 2) = 2ⁿ – 1

  • P = 3, Q = 2の場合
  • 1, 3, 7, 15, 31, 63, 127, …

このように、広義のリュカ数列は、数論に現れる重要な数列を統一的に扱える枠組みなんです。


リュカ数列の応用

リュカ数列は、理論的な興味だけでなく、実用的な応用もあります。

1. 素数判定

リュカ-レーマーテスト(Lucas-Lehmer test)

メルセンヌ素数を判定する方法で、リュカ数列の性質を利用しています。

これは、大きな素数を見つける最も効率的な方法の一つです。

2. 暗号理論

LUC暗号

リュカ数列を使った公開鍵暗号システムがあります。

RSA暗号の代替として研究されています。

3. 擬似乱数生成

リュカ数列の性質を利用して、擬似乱数を生成する方法があります。

4. 組合せ論

円環状の配置問題

1, 2, …, nの中から、隣り合わない数を選ぶ方法の総数は、Lₙ通りになります。

(ただし、1とnも隣り合っているとみなす円環状の配置)


プログラミングでの実装

再帰的な実装(Python)

def lucas(n):
    if n == 0:
        return 2
    elif n == 1:
        return 1
    else:
        return lucas(n-1) + lucas(n-2)

# 使用例
print(lucas(9))  # 76

反復的な実装(効率的)

def lucas(n):
    if n == 0:
        return 2
    elif n == 1:
        return 1

    a, b = 2, 1
    for i in range(2, n+1):
        a, b = b, a + b
    return b

# 使用例
print(lucas(9))  # 76

反復的な実装の方が、計算時間がO(n)で済むので効率的です。

リュカ数列を表示

def print_lucas(n):
    lucas_sequence = []
    a, b = 2, 1
    lucas_sequence.append(a)
    if n > 0:
        lucas_sequence.append(b)

    for i in range(2, n+1):
        a, b = b, a + b
        lucas_sequence.append(b)

    print(lucas_sequence)

# 使用例
print_lucas(15)
# [2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322, 521, 843, 1364]

フィボナッチ数列とリュカ数列の関係まとめ

両者の関係を改めて整理しましょう。

共通点

  1. 同じ漸化式:どちらも「前の2項の和」
  2. 黄金比に収束:隣接項の比がφに収束
  3. 同じ一般項の形:黄金比のべき乗で表せる
  4. 奇数・偶数のパターン:3の倍数番目が偶数

相違点

  1. 初期値が違う
  • フィボナッチ:0, 1
  • リュカ:2, 1
  1. 一般項の式
  • フィボナッチ:引き算
  • リュカ:足し算
  1. 素数の条件
  • フィボナッチ:Fₙが素数 → nは素数(F₄を除く)
  • リュカ:Lₙが素数 → nは0, 素数, または2のべき乗

きょうだいのような関係

フィボナッチ数列とリュカ数列は、同じ家族(広義のリュカ数列)に属するきょうだいのような関係です。

多くの公式で、互いに登場し合います。


リュカ数列の面白い性質

最後に、いくつか面白い性質を紹介します。

性質1:下1桁の周期

リュカ数列の下1桁(一の位)は、12個ごとに繰り返します。

2, 1, 3, 4, 7, 1, 8, 9, 7, 6, 3, 9, 2, 1, 3, 4, 7, 1, 8, 9, 7, 6, 3, 9, …

フィボナッチ数列の下1桁の周期が60なのに対し、リュカ数列は12と短いです。

性質2:下2桁の周期

下2桁(下十の位と一の位)の周期は60です。

これはフィボナッチ数列と同じです。

性質3:5で割った余りの周期

リュカ数列を5で割った余りは、4個ごとに繰り返します。

L mod 5 = 2, 1, 3, 4, 2, 1, 3, 4, …

性質4:末尾の数字

L₂ₙは必ず2で終わります。

  • L₂ = 3
  • L₄ = 7
  • L₆ = 18
  • L₈ = 47

あれ?これは間違いですね。正しくは、

L₃ₙは必ず偶数で終わります。

実際、3の倍数番目のリュカ数は偶数なので、必ず偶数で終わります。


まとめ

リュカ数列について、詳しく見てきました。

リュカ数列の定義

L₀ = 2, L₁ = 1, Lₙ = Lₙ₋₁ + Lₙ₋₂

数列:2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322, 521, 843, …

一般項

Lₙ = φⁿ + (1-φ)ⁿ

(φ = 黄金比 = (1+√5)/2)

フィボナッチ数列との関係

  • 同じ漸化式、違う初期値
  • 多くの関係式で結ばれている
  • きょうだいのような関係

リュカ素数

  • Lₙが素数 → nは0, 素数, または2のべき乗
  • 最初のリュカ素数:2, 3, 7, 11, 29, 47, 199, 521, …

応用

  • 素数判定(リュカ-レーマーテスト)
  • 暗号理論(LUC暗号)
  • 組合せ論

広義のリュカ数列

フィボナッチ数、リュカ数、ペル数、メルセンヌ数など、多くの重要な数列を含む一般的な枠組み。


リュカ数列は、フィボナッチ数列ほど有名ではありませんが、同じくらい興味深く、数学的に重要な数列です。

フィボナッチ数列を知っている人は、ぜひリュカ数列も覚えてみてください。

両者の関係を理解すると、数列の世界がもっと面白くなりますよ!

コメント

タイトルとURLをコピーしました