2015年7月20日月曜日

150720(3)

Ruby


Collatz conjecture(2)

次の予想について実験してみた。
(http://www.numbertheory.org/gnubc/challenge)

結果の先頭に
3の倍数で終わるなら、0 を
-1で終わるなら、-1 を
-2、-4の繰り返しになるなら、-2 をそれぞれつけた。
また、仮に予想が正しくないとすると、これら以外が生じることになるので、
その場合は ? をつけることにする。

def matthews(n, start = n)
  return [-2, -4] if start == -2
  ary = [n]
  return ary if n == -1 || n == -2
  return ary if n % 3 == 0
  return matthews((7 * n + 2) / 3, start).unshift(n) if n % 3 == 1
  return matthews((n - 2) / 3, start).unshift(n)
end

n = 41
i = -n * 6
while i <= n
  ary = matthews(i)
  last = ary[-1]
  if last % 3 == 0
    p [0, ary]
  elsif last == -1
    p [-1, ary]
  elsif last == -2 || last == -4
    p [-2, ary]
  else # 予想が正しければこのようなことはない
    p ['?', ary]
  end
  i += 1
end

出力結果
[0, [-246]]
[0, [-245, -571, -191, -445, -149, -347, -809, -1887]]
[-2, [-244, -82, -28, -10, -4, -2]]
[0, [-243]]
[0, [-242, -564]]
[0, [-241, -81]]
[0, [-240]]
[0, [-239, -557, -1299]]
[0, [-238, -80, -186]]
[0, [-237]]
[0, [-236, -550, -184, -62, -144]]
[0, [-235, -79, -27]]
[0, [-234]]
[0, [-233, -543]]
[0, [-232, -78]]
[0, [-231]]
[0, [-230, -536, -1250, -2916]]
[0, [-229, -77, -179, -417]]
[0, [-228]]
[0, [-227, -529, -177]]
[0, [-226, -76, -26, -60]]
[0, [-225]]
[0, [-224, -522]]
[0, [-223, -75]]
[0, [-222]]
[0, [-221, -515, -1201, -401, -935, -2181]]
[0, [-220, -74, -172, -58, -20, -46, -16, -6]]
[0, [-219]]
[0, [-218, -508, -170, -396]]
[0, [-217, -73, -25, -9]]
[0, [-216]]
[0, [-215, -501]]
[0, [-214, -72]]
[0, [-213]]
[0, [-212, -494, -1152]]
[0, [-211, -71, -165]]
[0, [-210]]
[0, [-209, -487, -163, -55, -19, -7, -3]]
[0, [-208, -70, -24]]
[0, [-207]]
[0, [-206, -480]]
[0, [-205, -69]]
[0, [-204]]
[0, [-203, -473, -1103, -2573, -6003]]
[0, [-202, -68, -158, -368, -858]]
[0, [-201]]
[0, [-200, -466, -156]]
[0, [-199, -67, -23, -53, -123]]
[0, [-198]]
[0, [-197, -459]]
[0, [-196, -66]]
[0, [-195]]
[0, [-194, -452, -1054, -352, -118, -40, -14, -32, -74, -172, -58, -20, -46, -16
, -6]]
[0, [-193, -65, -151, -51]]
[0, [-192]]
[0, [-191, -445, -149, -347, -809, -1887]]
[0, [-190, -64, -22, -8, -18]]
[0, [-189]]
[0, [-188, -438]]
[0, [-187, -63]]
[0, [-186]]
[0, [-185, -431, -1005]]
[0, [-184, -62, -144]]
[0, [-183]]
[0, [-182, -424, -142, -48]]
[0, [-181, -61, -21]]
[0, [-180]]
[0, [-179, -417]]
[0, [-178, -60]]
[0, [-177]]
[0, [-176, -410, -956, -2230, -744]]
[0, [-175, -59, -137, -319, -107, -249]]
[0, [-174]]
[0, [-173, -403, -135]]
[0, [-172, -58, -20, -46, -16, -6]]
[0, [-171]]
[0, [-170, -396]]
[0, [-169, -57]]
[0, [-168]]
[0, [-167, -389, -907, -303]]
[0, [-166, -56, -130, -44, -102]]
[0, [-165]]
[0, [-164, -382, -128, -298, -100, -34, -12]]
[0, [-163, -55, -19, -7, -3]]
[0, [-162]]
[0, [-161, -375]]
[0, [-160, -54]]
[0, [-159]]
[0, [-158, -368, -858]]
[0, [-157, -53, -123]]
[0, [-156]]
[0, [-155, -361, -121, -41, -95, -221, -515, -1201, -401, -935, -2181]]
[0, [-154, -52, -18]]
[0, [-153]]
[0, [-152, -354]]
[0, [-151, -51]]
[0, [-150]]
[0, [-149, -347, -809, -1887]]
[0, [-148, -50, -116, -270]]
[0, [-147]]
[0, [-146, -340, -114]]
[0, [-145, -49, -17, -39]]
[0, [-144]]
[0, [-143, -333]]
[0, [-142, -48]]
[0, [-141]]
[0, [-140, -326, -760, -254, -592, -198]]
[0, [-139, -47, -109, -37, -13, -5, -11, -25, -9]]
[0, [-138]]
[0, [-137, -319, -107, -249]]
[0, [-136, -46, -16, -6]]
[0, [-135]]
[0, [-134, -312]]
[0, [-133, -45]]
[0, [-132]]
[0, [-131, -305, -711]]
[0, [-130, -44, -102]]
[0, [-129]]
[0, [-128, -298, -100, -34, -12]]
[0, [-127, -43, -15]]
[0, [-126]]
[0, [-125, -291]]
[0, [-124, -42]]
[0, [-123]]
[0, [-122, -284, -662, -1544, -3602, -8404, -2802]]
[0, [-121, -41, -95, -221, -515, -1201, -401, -935, -2181]]
[0, [-120]]
[0, [-119, -277, -93]]
[0, [-118, -40, -14, -32, -74, -172, -58, -20, -46, -16, -6]]
[0, [-117]]
[0, [-116, -270]]
[0, [-115, -39]]
[0, [-114]]
[0, [-113, -263, -613, -205, -69]]
[0, [-112, -38, -88, -30]]
[0, [-111]]
[0, [-110, -256, -86, -200, -466, -156]]
[0, [-109, -37, -13, -5, -11, -25, -9]]
[0, [-108]]
[0, [-107, -249]]
[0, [-106, -36]]
[0, [-105]]
[0, [-104, -242, -564]]
[0, [-103, -35, -81]]
[0, [-102]]
[0, [-101, -235, -79, -27]]
[0, [-100, -34, -12]]
[0, [-99]]
[0, [-98, -228]]
[0, [-97, -33]]
[0, [-96]]
[0, [-95, -221, -515, -1201, -401, -935, -2181]]
[0, [-94, -32, -74, -172, -58, -20, -46, -16, -6]]
[0, [-93]]
[0, [-92, -214, -72]]
[0, [-91, -31, -11, -25, -9]]
[0, [-90]]
[0, [-89, -207]]
[0, [-88, -30]]
[0, [-87]]
[0, [-86, -200, -466, -156]]
[0, [-85, -29, -67, -23, -53, -123]]
[0, [-84]]
[0, [-83, -193, -65, -151, -51]]
[-2, [-82, -28, -10, -4, -2]]
[0, [-81]]
[0, [-80, -186]]
[0, [-79, -27]]
[0, [-78]]
[0, [-77, -179, -417]]
[0, [-76, -26, -60]]
[0, [-75]]
[0, [-74, -172, -58, -20, -46, -16, -6]]
[0, [-73, -25, -9]]
[0, [-72]]
[0, [-71, -165]]
[0, [-70, -24]]
[0, [-69]]
[0, [-68, -158, -368, -858]]
[0, [-67, -23, -53, -123]]
[0, [-66]]
[0, [-65, -151, -51]]
[0, [-64, -22, -8, -18]]
[0, [-63]]
[0, [-62, -144]]
[0, [-61, -21]]
[0, [-60]]
[0, [-59, -137, -319, -107, -249]]
[0, [-58, -20, -46, -16, -6]]
[0, [-57]]
[0, [-56, -130, -44, -102]]
[0, [-55, -19, -7, -3]]
[0, [-54]]
[0, [-53, -123]]
[0, [-52, -18]]
[0, [-51]]
[0, [-50, -116, -270]]
[0, [-49, -17, -39]]
[0, [-48]]
[0, [-47, -109, -37, -13, -5, -11, -25, -9]]
[0, [-46, -16, -6]]
[0, [-45]]
[0, [-44, -102]]
[0, [-43, -15]]
[0, [-42]]
[0, [-41, -95, -221, -515, -1201, -401, -935, -2181]]
[0, [-40, -14, -32, -74, -172, -58, -20, -46, -16, -6]]
[0, [-39]]
[0, [-38, -88, -30]]
[0, [-37, -13, -5, -11, -25, -9]]
[0, [-36]]
[0, [-35, -81]]
[0, [-34, -12]]
[0, [-33]]
[0, [-32, -74, -172, -58, -20, -46, -16, -6]]
[0, [-31, -11, -25, -9]]
[0, [-30]]
[0, [-29, -67, -23, -53, -123]]
[-2, [-28, -10, -4, -2]]
[0, [-27]]
[0, [-26, -60]]
[0, [-25, -9]]
[0, [-24]]
[0, [-23, -53, -123]]
[0, [-22, -8, -18]]
[0, [-21]]
[0, [-20, -46, -16, -6]]
[0, [-19, -7, -3]]
[0, [-18]]
[0, [-17, -39]]
[0, [-16, -6]]
[0, [-15]]
[0, [-14, -32, -74, -172, -58, -20, -46, -16, -6]]
[0, [-13, -5, -11, -25, -9]]
[0, [-12]]
[0, [-11, -25, -9]]
[-2, [-10, -4, -2]]
[0, [-9]]
[0, [-8, -18]]
[0, [-7, -3]]
[0, [-6]]
[0, [-5, -11, -25, -9]]
[-2, [-4, -2]]
[0, [-3]]
[-2, [-2, -4]]
[-1, [-1]]
[0, [0]]
[0, [1, 3]]
[0, [2, 0]]
[0, [3]]
[0, [4, 10, 24]]
[0, [5, 1, 3]]
[0, [6]]
[0, [7, 17, 5, 1, 3]]
[0, [8, 2, 0]]
[0, [9]]
[0, [10, 24]]
[0, [11, 3]]
[0, [12]]
[0, [13, 31, 73, 171]]
[0, [14, 4, 10, 24]]
[0, [15]]
[0, [16, 38, 12]]
[0, [17, 5, 1, 3]]
[0, [18]]
[0, [19, 45]]
[0, [20, 6]]
[0, [21]]
[0, [22, 52, 122, 40, 94, 220, 514, 1200]]
[0, [23, 7, 17, 5, 1, 3]]
[0, [24]]
[0, [25, 59, 19, 45]]
[0, [26, 8, 2, 0]]
[0, [27]]
[0, [28, 66]]
[0, [29, 9]]
[0, [30]]
[0, [31, 73, 171]]
[0, [32, 10, 24]]
[0, [33]]
[0, [34, 80, 26, 8, 2, 0]]
[0, [35, 11, 3]]
[0, [36]]
[0, [37, 87]]
[0, [38, 12]]
[0, [39]]
[0, [40, 94, 220, 514, 1200]]
[0, [41, 13, 31, 73, 171]]

0 件のコメント:

コメントを投稿

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