2024年5月27日月曜日

240527

Ruby


GCD sum theorems

次の論文のTheorem 3 を確認してみた。
GCD sum theorems. Two Multivariable Cesaro Type Identities

class Array
  def gcd
    self.inject{|a, b| a.gcd(b)}
  end
end

def A(k, m, n)
  s = 0
  (1..n).to_a.repeated_permutation(k){|perm|
    s += (perm + [n]).gcd ** m
  }
  s
end

n = 15
# i>=j
(1..4).each{|i|
  (1..i).each{|j|
    a = (1..n).map{|k| A(i, j, k)}
    b = (1..n).map{|k| A(j, i, k)}
    p [i, j, a] if a == b
  }
}

出力結果
[1, 1, [1, 3, 5, 8, 9, 15, 13, 20, 21, 27, 21, 40, 25, 39, 45]]
[2, 1, [1, 5, 11, 22, 29, 55, 55, 92, 105, 145, 131, 242, 181, 275, 319]]
[2, 2, [1, 7, 17, 40, 49, 119, 97, 208, 225, 343, 241, 680, 337, 679, 833]]
[3, 1, [1, 9, 29, 74, 129, 261, 349, 596, 789, 1161, 1341, 2146, 2209, 3141, 3741]]
[3, 2, [1, 11, 35, 100, 149, 385, 391, 848, 1017, 1639, 1451, 3500, 2365, 4301, 5215]]
[3, 3, [1, 15, 53, 176, 249, 795, 685, 1856, 2133, 3735, 2661, 9328, 4393, 10275, 13197]]
[4, 1, [1, 17, 83, 274, 629, 1411, 2407, 4388, 6729, 10693, 14651, 22742, 28573, 40919, 52207]]
[4, 2, [1, 19, 89, 316, 649, 1691, 2449, 5104, 7281, 12331, 14761, 28124, 28729, 46531, 57761]]
[4, 3, [1, 23, 107, 424, 749, 2461, 2743, 7232, 9369, 17227, 15971, 45368, 30757, 63089, 80143]]
[4, 4, [1, 31, 161, 736, 1249, 4991, 4801, 15616, 19521, 38719, 29281, 118496, 57121, 148831, 201089]]