[特別研究記事] 偶数を構成する素数ペアの数値解析

 少し前にカズキさんという方から ゴールドバッハ予想に関する興味深い研究結果 が寄せられたので、数値的に検証している最中です。ゴールドバッハ予想 とは「 4 以上の偶数は必ず2つの素数の和で表される」というシンプルな命題です。たとえば 24 という数字を例にとると、

24 = 5 + 19 = 7 + 17 = 11 + 13

というように素数の和に分解できます。このような分解の仕方が何通りあるかをグラフにしてみると次のようになります。

 

 横軸は 2n (≥4)、縦軸は素数ペアの数です。
 ペアの数は激しく上下しながらも、全体として少しずつ増加していることがわかります。2n = 200 を超えると最低でも 5 つはあります(予想が成り立つには 1 つあれば十分です)。こうして見る限り、ペアの数はどんどん増えていくので、直感的に予想は正しいように思えますが、数値計算でいくら頑張っても無限に成り立つことは証明できません。

 カズキさんは「ある n に対して素数ペアが最低これだけはある」ということを記事で書いています(つまりその意味するところは ...... 興味がある人は カズキさんのブログ に立ち寄ってみよう!)。その主張についても数値計算で確認している最中ですが、現在のところ反例は1つも見つかっていません。

素数ペアをカウントするマクロ

 ある自然数を構成する素数の組を数える Functionマクロ(ユーザー定義関数)も載せておきます。コードを標準モジュールに貼りつけて、セルに

=CPAIR(n)

と入力すると組数を返します。たとえば

=CPAIR(24)

と入力すると「 3 」という値が返ります。

 '素数であれば 1 を返すマクロです
 Function DPRIME(n As Long) As Long
 Dim c As Long, k As Long, s As Long

 For k = 2 To Int(n / 2)

 If n Mod k = 0 Then
  s = s + 1
 End If

 Next k

 If s = 0 Then

 DPRIME = 1

 End If

 End Function

 '素数のペアを数えるマクロです
 Function CPAIR(n As Long) As Long
 Dim a As Long, b As Long, s As Long

 For a = 2 To Int(n / 2)

 b = n - a

 If DPRIME(a) + DPRIME(b) = 2 Then
  s = s + 1
 End If

 Next a

 CPAIR = s

 End Function

 引数が素数であれば 1 を返す DPRIME関数を作って CPAIR関数の中で呼び出しています。DPRIME関数をワークシート上で単独で使うこともできます。たとえば

=DPRIME(14)

と入力すると、14 は素数ではないので「 0 」が返ります。

=DPRIME(11)

と入力すると、11 は素数なので「 1 」が返ってきます。

スポンサーリンク
末尾広告
末尾広告

コメント

  1. カズキ より:

    ここまでして頂いて本当にありがとうございます!
    グラフにしていただいた事で見ていただく方にも、より理解しやすくなったと思います。
    感謝です!

    • Blog Cat より:

       どういたしまして。カズキさんの証明がもっとたくさんの人に知ってもらえることを願っています。数学の証明でお忙しいとは思いますが、ブログのアクセスアップも頑張ってください。Google 検索エンジンで上位に表示されるためには、ある程度の記事の量も必要なので、日々発見したことを何でも書いておくことをおすすめします。

コメントをどうぞ

メールアドレスが公開されることはありません。