2016年7月22日金曜日

160722(2)

Ruby


Integrality and the Laurent phenomenon for Somos 4 sequences(6)

Somos-5 sequence とExample 3.10.について、
連続する5項 a(n), a(n + 1), a(n + 2), a(n + 3), a(n + 4) があるディオファントス方程式
の整数解となっていることを確認してみた。

def A(a1, a2, a3, a4, a5, k, l, n)
  a, b, c, d, e = a1, a2, a3, a4, a5
  ary = [a1]
  while ary.size < n
    break if (k * b * e + l * c * d) % a > 0
    a, b, c, d, e = b, c, d, e, (k * b * e + l * c * d) / a
    ary << a
  end
  ary
end

def x(s, t, u, v, w, k, l)
  a, b = (s * w + k * u * u) * (s * v * v + t * t * w) + l * t * u ** 3 * v, s * t * u * v * w
  return false if a % b > 0
  a / b
end

def Diophantine(s, t, u, v, w, k, l, x)
  (s * w + k * u * u) * (s * v * v + t * t * w) + l * t * u ** 3 * v == x * s * t * u * v * w
end

def f(a1, a2, a3, a4, a5, k, l, n)
  p ary = A(a1, a2, a3, a4, a5, k, l, n)
  p x = x(a1, a2, a3, a4, a5, k, l)
  p (0..n - 5).map{|i| Diophantine(ary[i], ary[i + 1], ary[i + 2], ary[i + 3], ary[i + 4], k, l, x)} if x != false
end

n = 20
# テスト用
a1, a2, a3, a4, a5, k, l = 1, 1, 1, 1, 3, 1, 1
f(a1, a2, a3, a4, a5, k, l, n)

a1, a2, a3, a4, a5, k, l = 1, 1, 1, 1, 1, 1, 1
f(a1, a2, a3, a4, a5, k, l, n)

a1, a2, a3, a4, a5, k, l = 1, 1, 33, 6655, 19487171, 14641, 1771561
f(a1, a2, a3, a4, a5, k, l, n)

出力結果
[1, 1, 1, 1, 3]
false
[1, 1, 1, 1, 1, 2, 3, 5, 11, 37, 83, 274, 1217, 6161, 22833, 165713, 1249441, 9434290, 68570323, 1013908933]
5
[true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]
[1, 1, 33, 6655, 19487171, 674373039626, 555574006532281583, 2345879232329836752083887, 200307601251927436078332053008509, 219971824428222900050666518284987764712025, 3887666958605833179170555602210214257367443066811413, 380839361618561003779294718633316740301897461805758739951572312, 1121919445425974717094325605394270519222600268102407201466752679107400977219, 31133086749621251824955952661007263330827341418732722759812071733078589539126247540694799, 11496978292173422270108082568815351190426830537799800037926505018418833517520513248993013534419430310347, 32406112571915301661340445672857146761849464162275200320858727006726309043090305459873711382250633429978574471987066505, 3062734217320035184862916348383372310191384125205415702242957382512718981738804270675151303107148820637789113824314227374013065057670969, 1832652730986468523394776857688575159077116510153570018306552642904733159483064604389893205747244831670434564909077292947998423169999052696571496625124374, 15556284695009425124311382176218986479848940619802549727926377555230994176942621028668718421432674506088639581354774906908757742105459493939790010015625738661581737880614357, 1506869577473427615686583333076081647784568762858277800162053676354036089315075784395652299317562441403878702026240428604584383981614084591448105387644121000664203431062675923725290509754365033]
627
[true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。