2016年6月19日日曜日

160619

Ruby


Glaisher's chi_4(n)(1)

ラマヌジャン《ゼータ関数論文集》
を見ていると、chi_4(n) について以下の式が載っていた。

chi_4(n) = f(x^2)^14 / f(-x)^4
(ただし、f(x) = x^(1 / 24) (1 - x)(1 - x^2)(1 - x^3)…)

整理すれば、
φ(x) φ(-x) φ(x^4) = φ(x^2)^3
(ただし、φ(x) はオイラー関数)
を示せばいいだけだが、
あえて
φ(x)^4 φ(x^2)^2 φ(x^4)^4 φ(-x)^4 = φ(x^2)^14
を確認することにした。

# m次以下を取り出す
def mul(f_ary, b_ary, m)
  s1, s2 = f_ary.size, b_ary.size
  ary = Array.new(s1 + s2 - 1, 0)
  (0..s1 - 1).each{|i|
    (0..s2 - 1).each{|j|
      ary[i + j] += f_ary[i] * b_ary[j]
    }
  }
  ary[0..m]
end

def p0(n)
  (3 * n * n - n) / 2
end

def p1(n)
  (3 * n * n + n) / 2
end

def A010815(n)
  ary = Array.new(n + 1, 0)
  ary[0] = 1
  i = 1
  j = p0(i)
  while j <= n
    ary[j] = (-1) ** i
    i += 1
    j = p0(i)
  end
  i = 1
  j = p1(i)
  while j <= n
    ary[j] = (-1) ** i
    i += 1
    j = p1(i)
  end
  ary
end

# m次以下を取り出す
def power(ary, n, m)
  return [1] if n == 0
  k = power(ary, n >> 1, m)
  k = mul(k, k, m)
  return k if n & 1 == 0
  return mul(k, ary, m)
end

def A(n)
  ary = A010815(n)
  ary0 = (0..n).map{|i| (-1) ** i * ary[i]}
  ary2 = Array.new(n + 1, 0)
  (0..n / 2).each{|i| ary2[2 * i] = ary[i]}
  ary4 = Array.new(n + 1, 0)
  (0..n / 4).each{|i| ary4[4 * i] = ary[i]}
  ary04 = power(ary0, 4, n)
  ary14 = power(ary, 4, n)
  ary22 = mul(ary2, ary2, n)
  ary44 = power(ary4, 4, n)
  ary = mul(ary14, ary22, n)
  ary = mul(ary, ary44, n)
  mul(ary, ary04, n)
end

def B(n)
  ary = A010815(n)
  ary2 = Array.new(n + 1, 0)
  (0..n / 2).each{|i| ary2[2 * i] = ary[i]}
  power(ary2, 14, n)
end

n = 1000
p a = A(n)
p b = B(n)
p a == b

出力結果
[1, 0, -14, 0, 77, 0, -182, 0, 0, 0, 924, 0, -1547, 0, -506, 0, 3003, 0, 0, 0, -1729, 0, -8372, 0, 9177, 0, 13090, 0, -15625, 0, 0, 0, -17017, 0, 10556, 0, 30107, 0, 0, 0, 7084, 0, -89206, 0, 11571, 0, 69160, 0, 0, 0, 27132, 0, 0, 0, -19096, 0, -153502, 0, 0, 0, 93093, 0, 165242, 0, 0, 0, -38962, 0, 0, 0, -420838, 0, 257439, 0, 0, 0, -76153, 0, 218750, 0, 168245, 0, 397320, 0, -638066, 0, -399126, 0, 0, 0, 67158, 0, 92092, 0, 530348, 0, 0, 0, 0, 0, 424879, 0, -659736, 0, -96019, 0, -629706, 0, 0, 0, 0, 0, 56446, 0, 839762, 0, 1248884, 0, 0, 0, -651651, 0, -1262884, 0, -1272271, 0, 2172742, 0, -1203125, 0, -566370, 0, 0, 0, 1525510, 0, 893893, 0, 0, 0, 1771561, 0, -1979978, 0, -467544, 0, -1599598, 0, 0, 0, -2244242, 0, 245973, 0, 3796114, 0, 0, 0, 0, 0, 2678571, 0, 0, 0, -3114111, 0, 0, 0, 0, 0, 782782, 0, -2185183, 0, -3062864, 0, -1774409, 0, 2843750, 0, 1467389, 0, 7082714, 0, 0, 0, -701624, 0, 0, 0, -6868862, 0, 5891732, 0, -4244240, 0, -4570773, 0, 0, 0, 0, 0, 0, 0, 5966779, 0, 0, 0, 0, 0, -98282, 0, 4466539, 0, 5499494, 0, -6279273, 0, 0, 0, -2425787, 0, -1519518, 0, -13055614, 0, 0, 0, 0, 0, 8932924, 0, 4682055, 0, 0, 0, 9235303, 0, 0, 0, -2622893, 0, -9712066, 0, 7432439, 0, 1407406, 0, 0, 0, 0, 0, -20878627, 0, -5892432, 0, 10975965, 0, 0, 0, 4738657, 0, -7693336, 0, 16235492, 0, 4072822, 0, 0, 0, 9666916, 0, 0, 0, 874874, 0, -5307757, 0, -14437500, 0, -26439842, 0, 12796784, 0, 0, 0, 2048606, 0, 0, 0, 16777684, 0, -13346151, 0, 0, 0, 16316223, 0, 0, 0, 4236232, 0, 0, 0, 13753663, 0, -790244, 0, 0, 0, -18490458, 0, -5817735, 0, -32404526, 0, 0, 0, 0, 0, 0, 0, 26266966, 0, 1616615, 0, -4643562, 0, 24171875, 0, -8626058, 0, 14084161, 0, 23977954, 0, -24137569, 0, 0, 0, 0, 0, 0, 0, -30418388, 0, -28962934, 0, 0, 0, 49349482, 0, -6623540, 0, -26415480, 0, -19723627, 0, 0, 0, 0, 0, 29554602, 0, 38871506, 0, 16799706, 0, 0, 0, 0, 0, 35830067, 0, -31107636, 0, -49131082, 0, 7906250, 0, -36575721, 0, -24801854, 0, 28775747, 0, 0, 0, 0, 0, -38459344, 0, 52240606, 0, -21770098, 0, 42746067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56926298, 0, 0, 0, 29745716, 0, -82426344, 0, 0, 0, -10375015, 0, 0, 0, -29158919, 0, -24094070, 0, 5468645, 0, 0, 0, -46921875, 0, 8610602, 0, 0, 0, 48732266, 0, 76592516, 0, 0, 0, 58877105, 0, 17960110, 0, -29479527, 0, -51758812, 0, 0, 0, -12626614, 0, -64358917, 0, 36758722, 0, -5341336, 0, 0, 0, 67366495, 0, -123725446, 0, -3957863, 0, -27308358, 0, 0, 0, 0, 0, 0, 0, 72900282, 0, 68839342, 0, 0, 0, 17098081, 0, -15234142, 0, 0, 0, 138001682, 0, 0, 0, -144474122, 0, 0, 0, -8006922, 0, -99157996, 0, 0, 0, 4346342, 0, 57627570, 0, -155657374, 0, 0, 0, 0, 0, 79537458, 0, 93549351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116128012, 0, 0, 0, -53496716, 0, 27015625, 0, -103819884, 0, 29343886, 0, 63990822, 0, 0, 0, 0, 0, 0, 0, -93611518, 0, -23385439, 0, -250543524, 0, 0, 0, -10467898, 0, 108434235, 0, 87827740, 0, 70622811, 0, 0, 0, 45138236, 0, 167301134, 0, -63883897, 0, 0, 0, 0, 0, 0, 0, 1375948, 0, 0, 0, -132089881, 0, 130812500, 0, 0, 0, -126725676, 0, -131134549, 0, -5854926, 0, 0, 0, -37049936, 0, 61049261, 0, -7329686, 0, -50733515, 0, 0, 0, 150522267, 0, 0, 0, -125126001, 0, 116278708, 0, 0, 0, 182778596, 0, -34994960, 0, 62112778, 0, 148035889, 0, 0, 0, -156901745, 0, -118773396, 0, 136410197, 0, 0, 0, -143390625, 0, -197610842, 0, 0, 0, -267885618, 0, 105863485, 0, 0, 0, -30458337, 0, 0, 0, 419470597, 0, 0, 0, 0, 0, 15884400, 0, -142816597, 0, 194789672, 0, -107782675, 0, 0, 0, 135669975, 0, 0, 0, -13728792, 0, 48334468, 0, 0, 0, 104202098, 0, -70555966, 0, -84705698, 0, 0, 0, -204531250, 0, -388854312, 0, -35704032, 0, -41471339, 0, 419126400, 0, 0, 0, 0, 0, -200479279, 0, -10273172, 0, 0, 0, 0, 0, 424443602, 0, 11121460, 0, 77112595, 0, 220890656, 0, 0, 0, 0, 0, 0, 0, -158280694, 0, 9662576, 0, 0, 0, -136648589, 0, -259555296, 0, -57019508, 0, -264986008, 0, 244140625, 0, 0, 0, 0, 0, 0, 0, -21662641, 0, 0, 0, -12685673, 0, 77672012, 0, 0, 0, -186178188, 0, 0, 0, 284935742, 0, 204071791, 0, 0, 0, 0, 0, 0, 0, 53976377, 0, 370157788, 0, 284241881, 0, -280440160, 0, 0, 0, -158097238, 0, -309157835, 0, -142568426, 0, -251029597, 0, 0, 0, -395439044, 0, 154237174, 0, -31239934, 0, 181881700, 0, 0, 0, 0, 0, 325383695, 0, -47105058, 0, -258777519, 0, 0, 0, 0, 0, 651036386, 0, -27011453, 0, 0, 0, 0, 0, 545368978, 0, 0, 0, -589572984, 0, 55909021, 0, 0, 0, -83612452, 0, 0, 0, 176110011, 0, -593731658, 0, 265890625, 0, -396891418, 0, 358668233, 0, -291661020, 0, 406457765, 0, 0, 0, -814266453, 0, -137558526, 0, 0, 0, 0, 0, 0, 0, 266337148, 0, -93021929, 0, 561163174, 0, 746832632, 0, 0, 0, 18461275, 0, 128229024, 0, 0, 0, -322424102, 0, 0, 0, 455591682, 0, -351949521, 0, 0, 0, -367737524, 0, -164937500, 0, 0, 0, -852164714, 0, 0, 0, 415496340, 0, 0, 0, 346199854, 0, 0, 0, 0, 0, -888297982, 0, 0, 0, 484910153, 0, -20795488, 0, -144494441, 0, 515721206, 0, 0, 0, 0, 0, -73831835, 0, 337925966, 0, 218259041, 0, 0, 0, 527070621, 0, 0, 0, 212944028, 0, 174715450, 0, -470421875, 0, -818643462, 0, 0, 0, -7567714, 0, 471810717, 0, 0, 0, -414666329, 0, -550738188, 0, 0, 0, -116388832, 0, 0, 0, -130264134, 0, -990662400, 0, 0, 0, 545483939, 0, 0, 0, 987088102, 0, -84371210, 0, 426001653, 0, 848197222, 0, 0, 0, -492394994, 0, 637426713, 0, -404368146, 0, 0, 0, 0, 0, -594823321, 0, 0, 0, 0, 0, 541816198, 0, 0, 0, -544201084, 0, 0, 0, 938655146, 0, -1005282278, 0, 0, 0, 46577531]
[1, 0, -14, 0, 77, 0, -182, 0, 0, 0, 924, 0, -1547, 0, -506, 0, 3003, 0, 0, 0, -1729, 0, -8372, 0, 9177, 0, 13090, 0, -15625, 0, 0, 0, -17017, 0, 10556, 0, 30107, 0, 0, 0, 7084, 0, -89206, 0, 11571, 0, 69160, 0, 0, 0, 27132, 0, 0, 0, -19096, 0, -153502, 0, 0, 0, 93093, 0, 165242, 0, 0, 0, -38962, 0, 0, 0, -420838, 0, 257439, 0, 0, 0, -76153, 0, 218750, 0, 168245, 0, 397320, 0, -638066, 0, -399126, 0, 0, 0, 67158, 0, 92092, 0, 530348, 0, 0, 0, 0, 0, 424879, 0, -659736, 0, -96019, 0, -629706, 0, 0, 0, 0, 0, 56446, 0, 839762, 0, 1248884, 0, 0, 0, -651651, 0, -1262884, 0, -1272271, 0, 2172742, 0, -1203125, 0, -566370, 0, 0, 0, 1525510, 0, 893893, 0, 0, 0, 1771561, 0, -1979978, 0, -467544, 0, -1599598, 0, 0, 0, -2244242, 0, 245973, 0, 3796114, 0, 0, 0, 0, 0, 2678571, 0, 0, 0, -3114111, 0, 0, 0, 0, 0, 782782, 0, -2185183, 0, -3062864, 0, -1774409, 0, 2843750, 0, 1467389, 0, 7082714, 0, 0, 0, -701624, 0, 0, 0, -6868862, 0, 5891732, 0, -4244240, 0, -4570773, 0, 0, 0, 0, 0, 0, 0, 5966779, 0, 0, 0, 0, 0, -98282, 0, 4466539, 0, 5499494, 0, -6279273, 0, 0, 0, -2425787, 0, -1519518, 0, -13055614, 0, 0, 0, 0, 0, 8932924, 0, 4682055, 0, 0, 0, 9235303, 0, 0, 0, -2622893, 0, -9712066, 0, 7432439, 0, 1407406, 0, 0, 0, 0, 0, -20878627, 0, -5892432, 0, 10975965, 0, 0, 0, 4738657, 0, -7693336, 0, 16235492, 0, 4072822, 0, 0, 0, 9666916, 0, 0, 0, 874874, 0, -5307757, 0, -14437500, 0, -26439842, 0, 12796784, 0, 0, 0, 2048606, 0, 0, 0, 16777684, 0, -13346151, 0, 0, 0, 16316223, 0, 0, 0, 4236232, 0, 0, 0, 13753663, 0, -790244, 0, 0, 0, -18490458, 0, -5817735, 0, -32404526, 0, 0, 0, 0, 0, 0, 0, 26266966, 0, 1616615, 0, -4643562, 0, 24171875, 0, -8626058, 0, 14084161, 0, 23977954, 0, -24137569, 0, 0, 0, 0, 0, 0, 0, -30418388, 0, -28962934, 0, 0, 0, 49349482, 0, -6623540, 0, -26415480, 0, -19723627, 0, 0, 0, 0, 0, 29554602, 0, 38871506, 0, 16799706, 0, 0, 0, 0, 0, 35830067, 0, -31107636, 0, -49131082, 0, 7906250, 0, -36575721, 0, -24801854, 0, 28775747, 0, 0, 0, 0, 0, -38459344, 0, 52240606, 0, -21770098, 0, 42746067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56926298, 0, 0, 0, 29745716, 0, -82426344, 0, 0, 0, -10375015, 0, 0, 0, -29158919, 0, -24094070, 0, 5468645, 0, 0, 0, -46921875, 0, 8610602, 0, 0, 0, 48732266, 0, 76592516, 0, 0, 0, 58877105, 0, 17960110, 0, -29479527, 0, -51758812, 0, 0, 0, -12626614, 0, -64358917, 0, 36758722, 0, -5341336, 0, 0, 0, 67366495, 0, -123725446, 0, -3957863, 0, -27308358, 0, 0, 0, 0, 0, 0, 0, 72900282, 0, 68839342, 0, 0, 0, 17098081, 0, -15234142, 0, 0, 0, 138001682, 0, 0, 0, -144474122, 0, 0, 0, -8006922, 0, -99157996, 0, 0, 0, 4346342, 0, 57627570, 0, -155657374, 0, 0, 0, 0, 0, 79537458, 0, 93549351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116128012, 0, 0, 0, -53496716, 0, 27015625, 0, -103819884, 0, 29343886, 0, 63990822, 0, 0, 0, 0, 0, 0, 0, -93611518, 0, -23385439, 0, -250543524, 0, 0, 0, -10467898, 0, 108434235, 0, 87827740, 0, 70622811, 0, 0, 0, 45138236, 0, 167301134, 0, -63883897, 0, 0, 0, 0, 0, 0, 0, 1375948, 0, 0, 0, -132089881, 0, 130812500, 0, 0, 0, -126725676, 0, -131134549, 0, -5854926, 0, 0, 0, -37049936, 0, 61049261, 0, -7329686, 0, -50733515, 0, 0, 0, 150522267, 0, 0, 0, -125126001, 0, 116278708, 0, 0, 0, 182778596, 0, -34994960, 0, 62112778, 0, 148035889, 0, 0, 0, -156901745, 0, -118773396, 0, 136410197, 0, 0, 0, -143390625, 0, -197610842, 0, 0, 0, -267885618, 0, 105863485, 0, 0, 0, -30458337, 0, 0, 0, 419470597, 0, 0, 0, 0, 0, 15884400, 0, -142816597, 0, 194789672, 0, -107782675, 0, 0, 0, 135669975, 0, 0, 0, -13728792, 0, 48334468, 0, 0, 0, 104202098, 0, -70555966, 0, -84705698, 0, 0, 0, -204531250, 0, -388854312, 0, -35704032, 0, -41471339, 0, 419126400, 0, 0, 0, 0, 0, -200479279, 0, -10273172, 0, 0, 0, 0, 0, 424443602, 0, 11121460, 0, 77112595, 0, 220890656, 0, 0, 0, 0, 0, 0, 0, -158280694, 0, 9662576, 0, 0, 0, -136648589, 0, -259555296, 0, -57019508, 0, -264986008, 0, 244140625, 0, 0, 0, 0, 0, 0, 0, -21662641, 0, 0, 0, -12685673, 0, 77672012, 0, 0, 0, -186178188, 0, 0, 0, 284935742, 0, 204071791, 0, 0, 0, 0, 0, 0, 0, 53976377, 0, 370157788, 0, 284241881, 0, -280440160, 0, 0, 0, -158097238, 0, -309157835, 0, -142568426, 0, -251029597, 0, 0, 0, -395439044, 0, 154237174, 0, -31239934, 0, 181881700, 0, 0, 0, 0, 0, 325383695, 0, -47105058, 0, -258777519, 0, 0, 0, 0, 0, 651036386, 0, -27011453, 0, 0, 0, 0, 0, 545368978, 0, 0, 0, -589572984, 0, 55909021, 0, 0, 0, -83612452, 0, 0, 0, 176110011, 0, -593731658, 0, 265890625, 0, -396891418, 0, 358668233, 0, -291661020, 0, 406457765, 0, 0, 0, -814266453, 0, -137558526, 0, 0, 0, 0, 0, 0, 0, 266337148, 0, -93021929, 0, 561163174, 0, 746832632, 0, 0, 0, 18461275, 0, 128229024, 0, 0, 0, -322424102, 0, 0, 0, 455591682, 0, -351949521, 0, 0, 0, -367737524, 0, -164937500, 0, 0, 0, -852164714, 0, 0, 0, 415496340, 0, 0, 0, 346199854, 0, 0, 0, 0, 0, -888297982, 0, 0, 0, 484910153, 0, -20795488, 0, -144494441, 0, 515721206, 0, 0, 0, 0, 0, -73831835, 0, 337925966, 0, 218259041, 0, 0, 0, 527070621, 0, 0, 0, 212944028, 0, 174715450, 0, -470421875, 0, -818643462, 0, 0, 0, -7567714, 0, 471810717, 0, 0, 0, -414666329, 0, -550738188, 0, 0, 0, -116388832, 0, 0, 0, -130264134, 0, -990662400, 0, 0, 0, 545483939, 0, 0, 0, 987088102, 0, -84371210, 0, 426001653, 0, 848197222, 0, 0, 0, -492394994, 0, 637426713, 0, -404368146, 0, 0, 0, 0, 0, -594823321, 0, 0, 0, 0, 0, 541816198, 0, 0, 0, -544201084, 0, 0, 0, 938655146, 0, -1005282278, 0, 0, 0, 46577531]
true

0 件のコメント:

コメントを投稿

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