BLOG-SINGLE

はじめに

先日、黄金数の勉強をしていたら面白いことを発見したので記事にしておきます

\(d_{3}\)が有理数となる\(m\)はいくつあるか?

\(d_{n+1}\)=\(\sqrt{1+md_{n}}\), \(d_{1}=1\)とするとき、
\(d_{2}\)=\(\sqrt{1+md_{1}}\) = \(\sqrt{1+m}\)
\(d_{3}\)=\(\sqrt{1+md_{2}}\) = \(\sqrt{1+m\sqrt{1+m}}\)となる

ここで\(d_{2}\)も有理数であることは\(d_{3}\)が有理数であるための必要条件なので、\(d_{2}\)は有理数だと仮定しておこう
このとき、\(\sqrt{1+m}=i\) (\(i\)は整数)とでき、\(d_{3}\)=\(\sqrt{1+(i^2-1)i}\)=\(\sqrt{i^3-i+1}\)となる
従って、\(i^3-i+1\)が、もし正の整数の平方の形で記述できれば、\(d_{3}\)は有理数であると言える
よってそのようなプログラムを組んだ

実行したプログラム

pythonで実行

  import math
  #100,000,000番目まで調査
  for i in range(1,100000000):
  #d_3を定義
      j = i*i*i-i+1
      k=math.sqrt(j)

  #kをint型に格納することで小数点以下を切り捨てる
      l = int(k)
      if (l*l == j):
          result = 'i='+str(i)+' : '+str(j)+'     d3は'+str(k)
          print (result)

実行結果

  i=1 : 1     d3は1.0
  i=3 : 25     d3は5.0
  i=5 : 121     d3は11.0
  i=56 : 175561     d3は419.0

100,000,000個実行しましたが4つしか見つかりませんでした

考察

\(d_{3}\)が有理数になるには\(l^3-l+1\)が平方数になればよいのでした
よって\(p^2 = l^3-l+1\)とし、この式を変形してみましょう
\(p^2-1 = l^3-l\)
\((p-1)(p+1) = (l-1)l(l+1)\)となり、
左辺は1つ飛びの2数の積
右辺は連続する3数の積となっています
すなわち、\(d_{3}\)が有理数になるための条件は
1つ飛びの2数の積のうち、それが連続する3数の積に分解できるような数であることがわかります

例えば、先の結果で出た\(i= 3, 5\)では、 右辺\(i^3-i\)はそれぞれ、24, 120 となり
24 = 4 * 6 = 2 * 3 * 4
120 = 10 * 12 = 4 * 5 * 6
というように変形できます

参考にしたページ

https://catalog.lib.kyushu-u.ac.jp/opac_download_md/15758/KJ00005471244.pdf

この記事を書いた人

佐藤亮太

取締役

フロントエンド、バックエンドのプログラムを得意とする

page top