2021年12月13日月曜日

211213

Ruby


ナゴヤ三角形について(3)

一つの角が90度の、全ての辺の長さが整数の三角形について考えます。
このうち、辺の長さが互いに素な場合(原始ピタゴラス数)を計算すると以下のようになります。

def A(n)
  ary = []
  (1..n).each{|i|
    (i + 1..n).each{|j|
      if i.gcd(j) == 1 && (i - j) % 2 > 0
        x, y, z = j * j, i * j, i * i
        b = y + y
        c = x + z 
        a = x - z
        ary << [a, b, c]
      end
    }
  }
  ary
end

n = 10
A(n).sort.each{|i| p i}

出力結果
[3, 4, 5]
[5, 12, 13]
[7, 24, 25]
[9, 40, 41]
[11, 60, 61]
[13, 84, 85]
[15, 8, 17]
[15, 112, 113]
[17, 144, 145]
[19, 180, 181]
[21, 20, 29]
[33, 56, 65]
[35, 12, 37]
[39, 80, 89]
[45, 28, 53]
[51, 140, 149]
[55, 48, 73]
[63, 16, 65]
[65, 72, 97]
[77, 36, 85]
[91, 60, 109]
[99, 20, 101]

2021年12月12日日曜日

211212

Ruby


ナゴヤ三角形について(2)

一つの角が120度の、全ての辺の長さが整数の三角形について考えます。
このうち、辺の長さが互いに素な場合を計算すると以下のようになります。

def A(n)
  ary = []
  (1..n).each{|i|
    (i + 1..n).each{|j|
      if i.gcd(j) == 1 && (i - j) % 3 > 0
        x, y, z = j * j, i * j, i * i
        b = x + y + y
        c = x + y + z 
        a = y + y + z
        ary << [b - a, a, c]
      end
    }
  }
  ary
end

n = 10
A(n).sort.each{|i| p i}

出力結果
[3, 5, 7]
[5, 16, 19]
[7, 33, 37]
[8, 7, 13]
[9, 56, 61]
[11, 85, 91]
[13, 120, 127]
[15, 161, 169]
[16, 39, 49]
[17, 208, 217]
[19, 261, 271]
[24, 11, 31]
[24, 95, 109]
[32, 175, 193]
[35, 13, 43]
[40, 51, 79]
[45, 32, 67]
[55, 57, 97]
[56, 115, 151]
[63, 17, 73]
[65, 88, 133]
[77, 40, 103]
[80, 19, 91]
[91, 69, 139]

2021年12月11日土曜日

211211

Ruby


ナゴヤ三角形について(1)

この記事は
日曜数学 Advent Calendar 2021
の12/11 分として書いております。

ナゴヤ三角形とは、一松 信氏命名の三角形の名称で、
一つの角が60度の、全ての辺の長さが整数の三角形(ただし、正三角形は除く)
のことです。
大学受験数学で頻出のものに、(3, 7, 8)や(5, 7, 8)があります。
辺の長さが互いに素な場合を原始的(primitive)とよびます。

原始的なナゴヤ三角形は、適当な正の整数m, n(0 < n < m)により、
2*m*n+n^2, m^2+m*n+n^2, m^2+2*m*n
もしくは
m^2 - n^2, m^2+m*n+n^2, m^2+2*m*n
のいずれかの形で一通りで表されます。

ここで注意しないといけない事は、
m, nに適当な値を入れると原始的でなくなる
ということです。
(m, n)=1, m-nが3で割り切れない
という条件が必要です。 

これらをもとに、原始的なナゴヤ三角形を計算すると以下のようになります。

def A(n)
  ary = []
  (1..n).each{|i|
    (i + 1..n).each{|j|
      if i.gcd(j) == 1 && (i - j) % 3 > 0
        x, y, z = j * j, i * j, i * i
        b = x + y + y
        c = x + y + z 
        a = y + y + z
        ary << [    a, b, c]
        ary << [b - a, b, c]
      end
    }
  }
  ary
end

n = 10
A(n).sort.each{|i| p i}

出力結果
[3, 8, 7]
[5, 8, 7]
[5, 21, 19]
[7, 15, 13]
[7, 40, 37]
[8, 15, 13]
[9, 65, 61]
[11, 35, 31]
[11, 96, 91]
[13, 48, 43]
[13, 133, 127]
[15, 176, 169]
[16, 21, 19]
[16, 55, 49]
[17, 80, 73]
[17, 225, 217]
[19, 99, 91]
[19, 280, 271]
[24, 35, 31]
[24, 119, 109]
[32, 77, 67]
[32, 207, 193]
[33, 40, 37]
[35, 48, 43]
[39, 55, 49]
[40, 91, 79]
[40, 117, 103]
[45, 77, 67]
[51, 91, 79]
[55, 112, 97]
[56, 65, 61]
[56, 171, 151]
[57, 112, 97]
[63, 80, 73]
[65, 153, 133]
[69, 160, 139]
[77, 117, 103]
[80, 99, 91]
[85, 96, 91]
[88, 153, 133]
[91, 160, 139]
[95, 119, 109]
[115, 171, 151]
[120, 133, 127]
[161, 176, 169]
[175, 207, 193]
[208, 225, 217]
[261, 280, 271]

2021年11月6日土曜日

211106

Ruby


Numbers k such that k^2 is palindromic in base b

出力してみた。

def A(k, n)
  i = (n * n).to_s(k)
  i == i.reverse
end

def B(k, n)
  m = 0
  cnt = 0
  ary = []
  while cnt < n
    if A(k, m)
      cnt += 1
      ary << m
    end
    m += 1
  end
  ary
end

n = 10
(2..36).each{|i|
  p [i, B(i, n)]
}

出力結果
[2, [0, 1, 3, 4523, 11991, 18197, 141683, 1092489, 3168099, 6435309]]
[3, [0, 1, 2, 4, 10, 11, 20, 22, 28, 34]]
[4, [0, 1, 5, 17, 21, 65, 71, 83, 257, 273]]
[5, [0, 1, 2, 6, 26, 31, 66, 126, 156, 626]]
[6, [0, 1, 2, 7, 37, 43, 76, 91, 217, 259]]
[7, [0, 1, 2, 4, 8, 10, 11, 20, 32, 40]]
[8, [0, 1, 2, 3, 6, 9, 11, 27, 65, 73]]
[9, [0, 1, 2, 10, 20, 82, 91, 100, 164, 730]]
[10, [0, 1, 2, 3, 11, 22, 26, 101, 111, 121]]
[11, [0, 1, 2, 3, 6, 12, 24, 26, 72, 84]]
[12, [0, 1, 2, 3, 13, 26, 145, 157, 169, 179]]
[13, [0, 1, 2, 3, 14, 28, 170, 183, 196, 209]]
[14, [0, 1, 2, 3, 15, 24, 30, 47, 165, 197]]
[15, [0, 1, 2, 3, 4, 8, 12, 16, 19, 32]]
[16, [0, 1, 2, 3, 17, 34, 257, 273, 289, 305]]
[17, [0, 1, 2, 3, 4, 6, 12, 18, 28, 36]]
[18, [0, 1, 2, 3, 4, 19, 38, 49, 65, 325]]
[19, [0, 1, 2, 3, 4, 10, 20, 40, 60, 64]]
[20, [0, 1, 2, 3, 4, 21, 42, 45, 63, 273]]
[21, [0, 1, 2, 3, 4, 22, 29, 44, 56, 66]]
[22, [0, 1, 2, 3, 4, 23, 39, 46, 51, 69]]
[23, [0, 1, 2, 3, 4, 12, 24, 48, 57, 58]]
[24, [0, 1, 2, 3, 4, 5, 10, 15, 20, 25]]
[25, [0, 1, 2, 3, 4, 26, 52, 66, 78, 626]]
[26, [0, 1, 2, 3, 4, 5, 9, 18, 27, 54]]
[27, [0, 1, 2, 3, 4, 5, 14, 28, 56, 84]]
[28, [0, 1, 2, 3, 4, 5, 29, 58, 87, 785]]
[29, [0, 1, 2, 3, 4, 5, 30, 60, 69, 81]]
[30, [0, 1, 2, 3, 4, 5, 31, 41, 62, 93]]
[31, [0, 1, 2, 3, 4, 5, 8, 16, 24, 32]]
[32, [0, 1, 2, 3, 4, 5, 33, 66, 70, 99]]
[33, [0, 1, 2, 3, 4, 5, 34, 43, 60, 68]]
[34, [0, 1, 2, 3, 4, 5, 35, 70, 105, 127]]
[35, [0, 1, 2, 3, 4, 5, 6, 12, 18, 24]]
[36, [0, 1, 2, 3, 4, 5, 37, 74, 111, 133]]

2021年10月9日土曜日

211009

Ruby


Stirling number

第1種スターリング数および第2種スターリング数を計算してみた。
第1種については
「数の本」、「コンピュータの数学」
にある通り、符号なしで出力してみる。

# 符号は無視
def stirling(n, k = 1)
  a = [1]
  p [0, a]
  (1..n).each{|i|
    a << 0
    b = [0]
    (0..i - 1).each{|j|
      if k == 2
        b[j + 1] = a[j] + (j + 1) * a[j + 1]
      else
        b[j + 1] = a[j] + (i - 1) * a[j + 1]
      end
    }
    a = b
    p [i, a]
  }
end

n = 10
stirling(n)
p ""
stirling(n, 2)

出力結果
[0, [1]]
[1, [0, 1]]
[2, [0, 1, 1]]
[3, [0, 2, 3, 1]]
[4, [0, 6, 11, 6, 1]]
[5, [0, 24, 50, 35, 10, 1]]
[6, [0, 120, 274, 225, 85, 15, 1]]
[7, [0, 720, 1764, 1624, 735, 175, 21, 1]]
[8, [0, 5040, 13068, 13132, 6769, 1960, 322, 28, 1]]
[9, [0, 40320, 109584, 118124, 67284, 22449, 4536, 546, 36, 1]]
[10, [0, 362880, 1026576, 1172700, 723680, 269325, 63273, 9450, 870, 45, 1]]
""
[0, [1]]
[1, [0, 1]]
[2, [0, 1, 1]]
[3, [0, 1, 3, 1]]
[4, [0, 1, 7, 6, 1]]
[5, [0, 1, 15, 25, 10, 1]]
[6, [0, 1, 31, 90, 65, 15, 1]]
[7, [0, 1, 63, 301, 350, 140, 21, 1]]
[8, [0, 1, 127, 966, 1701, 1050, 266, 28, 1]]
[9, [0, 1, 255, 3025, 7770, 6951, 2646, 462, 36, 1]]
[10, [0, 1, 511, 9330, 34105, 42525, 22827, 5880, 750, 45, 1]]

2021年10月7日木曜日

211007

Ruby


37で割り切れるpandigital number

2016年JJMO予選の問題をプログラミングで解いてみた。
0を含めない場合についても考えてみた。

def A(m, n)
  ary = []
  (m..n).to_a.permutation{|i|
    if i[0] > 0
      j = i.join.to_i
      ary << j if j % 37 == 0
    end
  }
  ary
end

def show(ary, n)
  p ary.size
  # 小さいものをn個表示
  p ary[0..n - 1]
  # 大きいものをn個表示
  p ary[-n..-1]
end

n = 10
show(A(0, 9), n)
# もし1から9の数字だったら
show(A(1, 9), n)

出力結果
85104
[1023654987, 1023657984, 1023684957, 1023687954, 1023745896, 1023746895, 1023795846, 1023796845, 1023845796, 1023846795]
[9876142305, 9876145302, 9876302145, 9876305142, 9876342105, 9876345102, 9876412035, 9876415032, 9876432015, 9876435012]
9072
[123564978, 123568974, 123574968, 123578964, 123645897, 123647895, 123695847, 123697845, 123845697, 123847695]
[987263415, 987265413, 987413265, 987415263, 987463215, 987465213, 987532146, 987536142, 987542136, 987546132]

2021年9月19日日曜日

210919

Ruby


π を分数で近似(4)

π = 4/(1 + 1^2/(3 + 2^2/(5 + 3^2/(7 + ...
を利用して、近似してみた。

def A(k, m, n)
  a, b = k, m
  ary = [k]
  (1..n).each{|i|
    a, b = b, (2 * i + 1) * b + i ** 2 * a
    ary << a
  }
  ary
end

n = 20
# A054765
p ary0 = A(0, 1, n)
# A012244
p ary1 = A(1, 1, n)
p (0..n).map{|i| 4 * ary0[i] / ary1[i].to_r}

出力結果
[0, 1, 3, 19, 160, 1744, 23184, 364176, 6598656, 135484416, 3108695040, 78831037440, 2189265960960, 66083318415360, 2154235544616960, 75425161203302400, 2822882994841190400, 112463980097804697600, 4752052488932268441600, 212264271642182654361600, 9993797542549672427520000]
[1, 1, 4, 24, 204, 2220, 29520, 463680, 8401680, 172504080, 3958113600, 100370793600, 2787459998400, 84139894238400, 2742857884166400, 96034297911552000, 3594206259195552000, 143193586818810528000, 6050501147565883008000, 270263264589232282368000, 12724498233251342778240000]
[(0/1), (4/1), (3/1), (19/6), (160/51), (1744/555), (644/205), (2529/805), (183296/58345), (3763456/1197945), (4317632/1374345), (54743776/17425485), (1013549056/322622685), (30594128896/9738413685), (35618973952/11337871545), (10392576224/3308059755), (3111643512832/990466892415), (123968232030208/39460313827935), (48501417558016/15438480702645), (1083228572868608/344802363740835), (4080033616887808/1298715036217599)]

2021年9月1日水曜日

210901

Ruby


A213261

p(7*n+5) を出力してみた。

def s(k, n)
  s = 0
  (1..n).each{|i| s += i if n % i == 0 && i % k == 0}
  s
end

def A(ary, n)
  a_ary = [1]
  a = [0] + (1..n).map{|i| ary.inject(0){|s, j| s + j[1] * s(j[0], i)}}
  (1..n).each{|i| a_ary << (1..i).inject(0){|s, j| s - a[j] * a_ary[-j]} / i}
  a_ary
end

n = 15
a = [7, 49]
ary = (0..1).map{|i| p [0] * i + A([[7, 4 * (i + 1) - 1], [1, -4 * (i + 1)]], n)}
(0..n).each{|i|
  print "#{(0..1).inject(0){|s, j| s + a[j] * ary[j][i]}} = "
  (0..1).each{|j|
    print " + " if j > 0
    print "#{a[j]} * #{ary[j][i]}"
  }
  puts
}

出力結果
[1, 4, 14, 40, 105, 252, 574, 1237, 2568, 5138, 9988, 18893, 34937, 63238, 112370, 196244]
[0, 1, 8, 44, 192, 726, 2464, 7704, 22521, 62281, 164252, 415796, 1015334, 2401462, 5519640, 12363062, 27047913]
7 = 7 * 1 + 49 * 0
77 = 7 * 4 + 49 * 1
490 = 7 * 14 + 49 * 8
2436 = 7 * 40 + 49 * 44
10143 = 7 * 105 + 49 * 192
37338 = 7 * 252 + 49 * 726
124754 = 7 * 574 + 49 * 2464
386155 = 7 * 1237 + 49 * 7704
1121505 = 7 * 2568 + 49 * 22521
3087735 = 7 * 5138 + 49 * 62281
8118264 = 7 * 9988 + 49 * 164252
20506255 = 7 * 18893 + 49 * 415796
49995925 = 7 * 34937 + 49 * 1015334
118114304 = 7 * 63238 + 49 * 2401462
271248950 = 7 * 112370 + 49 * 5519640
607163746 = 7 * 196244 + 49 * 12363062

2021年8月1日日曜日

210801

Ruby


A282919

p(49*n+47) を出力してみた。

def s(k, n)
  s = 0
  (1..n).each{|i| s += i if n % i == 0 && i % k == 0}
  s
end

def A(ary, n)
  a_ary = [1]
  a = [0] + (1..n).map{|i| ary.inject(0){|s, j| s + j[1] * s(j[0], i)}}
  (1..n).each{|i| a_ary << (1..i).inject(0){|s, j| s - a[j] * a_ary[-j]} / i}
  a_ary
end

n = 15
a =
[7 ** 2 * 2546, 7 ** 4 * 48934, 7 ** 5 * 1418989, 7 ** 7 * 2488800, 7 ** 9 * 2394438,
 7 ** 11 * 1437047, 7 ** 12 * 4043313, 7 ** 15 * 161744, 7 ** 17 * 32136, 7 ** 18 * 31734,
 7 ** 20 * 3120, 7 ** 22 * 204, 7 ** 24 * 8, 7 ** 25]
ary = (0..13).map{|i| p [0] * i + A([[7, 4 * (i + 1)], [1, -4 * (i + 1) - 1]], n)}
(0..n).each{|i|
  print "#{(0..13).inject(0){|s, j| s + a[j] * ary[j][i]}} = "
  (0..13).each{|j|
    print " + " if j > 0
    print "#{a[j]} * #{ary[j][i]}"
  }
  puts
}

出力結果
[1, 5, 20, 65, 190, 506, 1265, 2986, 6745, 14645, 30767, 62745, 124706, 242110, 460337, 858673]
[0, 1, 9, 54, 255, 1035, 3753, 12483, 38701, 113193, 315013, 839802, 2155905, 5352252, 12894426, 30233558, 69160869]
[0, 0, 1, 13, 104, 637, 3276, 14820, 60697, 229360, 810498, 2705118, 8592857, 26134654, 76476816, 216174700, 592220696, 1576826355]
[0, 0, 0, 1, 17, 170, 1275, 7905, 42619, 206091, 912459, 3753328, 14500320, 53053498, 185046190, 618555931, 1990227519, 6186291009, 18633598578]
[0, 0, 0, 0, 1, 21, 252, 2233, 16170, 100926, 560945, 2837398, 13265679, 57989435, 239125579, 936702879, 3505361650, 12590400326, 43572202835, 145770820937]
[0, 0, 0, 0, 0, 1, 25, 350, 3575, 29575, 209405, 1312675, 7452201, 38939275, 189537775, 867436570, 3760131375, 15529994130, 61413915500, 233488417752, 856388420815]
[0, 0, 0, 0, 0, 0, 1, 29, 464, 5365, 49880, 394632, 2750969, 17296732, 99742368, 534126988, 2681856693, 12722233068, 57373155952, 247218913828, 1022189562610, 4070289420139]
[0, 0, 0, 0, 0, 0, 0, 1, 33, 594, 7667, 79101, 691119, 5299019, 36518791, 230122266, 1343028082, 7331536586, 37731144564, 184232285897, 857974579385, 3827695162667, 16420097827188]
[0, 0, 0, 0, 0, 0, 0, 0, 1, 37, 740, 10545, 119510, 1142338, 9548849, 71529474, 488650453, 3084466705, 18173253703, 100751920597, 529029597362, 2645187324766, 12651654794629, 58105915432081]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 41, 902, 14063, 173635, 1801745, 16300739, 131814181, 969824701, 6579564585, 41587633402, 246925024493, 1386436741480, 7402293438974, 37755020009290, 184685764132377]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 45, 1080, 18285, 244260, 2733804, 26606745, 230915656, 1819708110, 13198528010, 89041203249, 563420646090, 3366705675744, 19105222953420, 103448715353372, 536621238174195]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 49, 1274, 23275, 334425, 4015011, 41818315, 387605443, 3256150548, 25135003348, 180196297050, 1210028211210, 7663549175191, 46039891115155, 263630633610437, 1444741006154614]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 53, 1484, 29097, 447426, 5734918, 63638001, 627260142, 5594403499, 45779730871, 347453597091, 2466970932027, 16501339314082, 104588498225862, 631215364345159, 3642533720923593]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 57, 1710, 35815, 586815, 7997157, 94175267, 983458849, 9279004863, 80218101555, 642408637594, 4807304399931, 33855173217278, 225702273908048, 1431470152072364, 8673471170235715]
124754 = 124754 * 1 + 117490534 * 0 + 23848948123 * 0 + 2049633818400 * 0 + 96624210037866 * 0 + 2841511464047921 * 0 + 55964656476536913 * 0 + 767889588864220592 * 0 + 7475814197492884152 * 0 + 51676077116090188566 * 0 + 248951870848549443120 * 0 + 797603493910929561996 * 0 + 1532649851044531315208 * 0 + 1341068619663964900807 * 0
118114304 = 124754 * 5 + 117490534 * 1 + 23848948123 * 0 + 2049633818400 * 0 + 96624210037866 * 0 + 2841511464047921 * 0 + 55964656476536913 * 0 + 767889588864220592 * 0 + 7475814197492884152 * 0 + 51676077116090188566 * 0 + 248951870848549443120 * 0 + 797603493910929561996 * 0 + 1532649851044531315208 * 0 + 1341068619663964900807 * 0
24908858009 = 124754 * 20 + 117490534 * 9 + 23848948123 * 1 + 2049633818400 * 0 + 96624210037866 * 0 + 2841511464047921 * 0 + 55964656476536913 * 0 + 767889588864220592 * 0 + 7475814197492884152 * 0 + 51676077116090188566 * 0 + 248951870848549443120 * 0 + 797603493910929561996 * 0 + 1532649851044531315208 * 0 + 1341068619663964900807 * 0
2366022741845 = 124754 * 65 + 117490534 * 54 + 23848948123 * 13 + 2049633818400 * 1 + 96624210037866 * 0 + 2841511464047921 * 0 + 55964656476536913 * 0 + 767889588864220592 * 0 + 7475814197492884152 * 0 + 51676077116090188566 * 0 + 248951870848549443120 * 0 + 797603493910929561996 * 0 + 1532649851044531315208 * 0 + 1341068619663964900807 * 0
133978259344888 = 124754 * 190 + 117490534 * 255 + 23848948123 * 104 + 2049633818400 * 17 + 96624210037866 * 1 + 2841511464047921 * 0 + 55964656476536913 * 0 + 767889588864220592 * 0 + 7475814197492884152 * 0 + 51676077116090188566 * 0 + 248951870848549443120 * 0 + 797603493910929561996 * 0 + 1532649851044531315208 * 0 + 1341068619663964900807 * 0
5234371069753672 = 124754 * 506 + 117490534 * 1035 + 23848948123 * 637 + 2049633818400 * 170 + 96624210037866 * 21 + 2841511464047921 * 1 + 55964656476536913 * 0 + 767889588864220592 * 0 + 7475814197492884152 * 0 + 51676077116090188566 * 0 + 248951870848549443120 * 0 + 797603493910929561996 * 0 + 1532649851044531315208 * 0 + 1341068619663964900807 * 0
154043597379576030 = 124754 * 1265 + 117490534 * 3753 + 23848948123 * 3276 + 2049633818400 * 1275 + 96624210037866 * 252 + 2841511464047921 * 25 + 55964656476536913 * 1 + 767889588864220592 * 0 + 7475814197492884152 * 0 + 51676077116090188566 * 0 + 248951870848549443120 * 0 + 797603493910929561996 * 0 + 1532649851044531315208 * 0 + 1341068619663964900807 * 0
3617712763867604423 = 124754 * 2986 + 117490534 * 12483 + 23848948123 * 14820 + 2049633818400 * 7905 + 96624210037866 * 2233 + 2841511464047921 * 350 + 55964656476536913 * 29 + 767889588864220592 * 1 + 7475814197492884152 * 0 + 51676077116090188566 * 0 + 248951870848549443120 * 0 + 797603493910929561996 * 0 + 1532649851044531315208 * 0 + 1341068619663964900807 * 0
70593393646562135510 = 124754 * 6745 + 117490534 * 38701 + 23848948123 * 60697 + 2049633818400 * 42619 + 96624210037866 * 16170 + 2841511464047921 * 3575 + 55964656476536913 * 464 + 767889588864220592 * 33 + 7475814197492884152 * 1 + 51676077116090188566 * 0 + 248951870848549443120 * 0 + 797603493910929561996 * 0 + 1532649851044531315208 * 0 + 1341068619663964900807 * 0
1178875491155735802646 = 124754 * 14645 + 117490534 * 113193 + 23848948123 * 229360 + 2049633818400 * 206091 + 96624210037866 * 100926 + 2841511464047921 * 29575 + 55964656476536913 * 5365 + 767889588864220592 * 594 + 7475814197492884152 * 37 + 51676077116090188566 * 1 + 248951870848549443120 * 0 + 797603493910929561996 * 0 + 1532649851044531315208 * 0 + 1341068619663964900807 * 0
17229817230617210720599 = 124754 * 30767 + 117490534 * 315013 + 23848948123 * 810498 + 2049633818400 * 912459 + 96624210037866 * 560945 + 2841511464047921 * 209405 + 55964656476536913 * 49880 + 767889588864220592 * 7667 + 7475814197492884152 * 740 + 51676077116090188566 * 41 + 248951870848549443120 * 1 + 797603493910929561996 * 0 + 1532649851044531315208 * 0 + 1341068619663964900807 * 0
224282898599046831034631 = 124754 * 62745 + 117490534 * 839802 + 23848948123 * 2705118 + 2049633818400 * 3753328 + 96624210037866 * 2837398 + 2841511464047921 * 1312675 + 55964656476536913 * 394632 + 767889588864220592 * 79101 + 7475814197492884152 * 10545 + 51676077116090188566 * 902 + 248951870848549443120 * 45 + 797603493910929561996 * 1 + 1532649851044531315208 * 0 + 1341068619663964900807 * 0
2636785814481962651219075 = 124754 * 124706 + 117490534 * 2155905 + 23848948123 * 8592857 + 2049633818400 * 14500320 + 96624210037866 * 13265679 + 2841511464047921 * 7452201 + 55964656476536913 * 2750969 + 767889588864220592 * 691119 + 7475814197492884152 * 119510 + 51676077116090188566 * 14063 + 248951870848549443120 * 1080 + 797603493910929561996 * 49 + 1532649851044531315208 * 1 + 1341068619663964900807 * 0
28316911738879831363625420 = 124754 * 242110 + 117490534 * 5352252 + 23848948123 * 26134654 + 2049633818400 * 53053498 + 96624210037866 * 57989435 + 2841511464047921 * 38939275 + 55964656476536913 * 17296732 + 767889588864220592 * 5299019 + 7475814197492884152 * 1142338 + 51676077116090188566 * 173635 + 248951870848549443120 * 18285 + 797603493910929561996 * 1274 + 1532649851044531315208 * 53 + 1341068619663964900807 * 1
280403140023083872114273884 = 124754 * 460337 + 117490534 * 12894426 + 23848948123 * 76476816 + 2049633818400 * 185046190 + 96624210037866 * 239125579 + 2841511464047921 * 189537775 + 55964656476536913 * 99742368 + 767889588864220592 * 36518791 + 7475814197492884152 * 9548849 + 51676077116090188566 * 1801745 + 248951870848549443120 * 244260 + 797603493910929561996 * 23275 + 1532649851044531315208 * 1484 + 1341068619663964900807 * 57
2580469549453004933593920862 = 124754 * 858673 + 117490534 * 30233558 + 23848948123 * 216174700 + 2049633818400 * 618555931 + 96624210037866 * 936702879 + 2841511464047921 * 867436570 + 55964656476536913 * 534126988 + 767889588864220592 * 230122266 + 7475814197492884152 * 71529474 + 51676077116090188566 * 16300739 + 248951870848549443120 * 2733804 + 797603493910929561996 * 334425 + 1532649851044531315208 * 29097 + 1341068619663964900807 * 1710

2021年7月31日土曜日

210731

Ruby


A278559

p(25*n+24) を出力してみた。

def s(k, n)
  s = 0
  (1..n).each{|i| s += i if n % i == 0 && i % k == 0}
  s
end

def A(ary, n)
  a_ary = [1]
  a = [0] + (1..n).map{|i| ary.inject(0){|s, j| s + j[1] * s(j[0], i)}}
  (1..n).each{|i| a_ary << (1..i).inject(0){|s, j| s - a[j] * a_ary[-j]} / i}
  a_ary
end

n = 10
a = [5 ** 2 * 63, 5 ** 5 * 52, 5 ** 7 * 63, 5 ** 10 * 6, 5 ** 12]
ary = (0..4).map{|i| p [0] * i + A([[5, 6 * (i + 1)], [1, -6 * (i + 1) - 1]], n)}
(0..n).each{|i|
  print "#{(0..4).inject(0){|s, j| s + a[j] * ary[j][i]}} = "
  (0..4).each{|j|
    print " + " if j > 0
    print "#{a[j]} * #{ary[j][i]}"
  }
  puts
}

出力結果
[1, 7, 35, 140, 490, 1541, 4480, 12195, 31465, 77525, 183626]
[0, 1, 13, 104, 637, 3276, 14808, 60541, 228124, 803010, 2667054, 8422715]
[0, 0, 1, 19, 209, 1710, 11495, 66862, 347339, 1645875, 7221520, 29668595, 115116233]
[0, 0, 0, 1, 25, 350, 3575, 29575, 209381, 1312075, 7443825, 38854075, 188836375, 862496902]
[0, 0, 0, 0, 1, 31, 527, 6448, 63240, 526443, 3852742, 25380847, 153068700, 855816380, 4479330091]
1575 = 1575 * 1 + 162500 * 0 + 4921875 * 0 + 58593750 * 0 + 244140625 * 0
173525 = 1575 * 7 + 162500 * 1 + 4921875 * 0 + 58593750 * 0 + 244140625 * 0
7089500 = 1575 * 35 + 162500 * 13 + 4921875 * 1 + 58593750 * 0 + 244140625 * 0
169229875 = 1575 * 140 + 162500 * 104 + 4921875 * 19 + 58593750 * 1 + 244140625 * 0
2841940500 = 1575 * 490 + 162500 * 637 + 4921875 * 209 + 58593750 * 25 + 244140625 * 1
37027355200 = 1575 * 1541 + 162500 * 3276 + 4921875 * 1710 + 58593750 * 350 + 244140625 * 31
397125074750 = 1575 * 4480 + 162500 * 14808 + 4921875 * 11495 + 58593750 * 3575 + 244140625 * 527
3646072432125 = 1575 * 12195 + 162500 * 60541 + 4921875 * 66862 + 58593750 * 29575 + 244140625 * 6448
29454549941750 = 1575 * 31465 + 162500 * 228124 + 4921875 * 347339 + 58593750 * 209381 + 244140625 * 63240
213636919820625 = 1575 * 77525 + 162500 * 803010 + 4921875 * 1645875 + 58593750 * 1312075 + 244140625 * 526443
1412749565173450 = 1575 * 183626 + 162500 * 2667054 + 4921875 * 7221520 + 58593750 * 7443825 + 244140625 * 3852742

2021年6月26日土曜日

210626

OEISに載っている変わった数列

A027440 は何と「TV channels in Tokyo」である。
REFERENCES には
From a Tokyo kindergarten entrance examination.
と書いてある。
知識問題は、流石にプログラミングで答えが出せない。

2021年5月18日火曜日

210518

PARI


Sum_{n = 1..24} n^2 = 70^2(6)

n-gonal number であり、n-gonal pyramidal number である数について
比較的小さなもの(ただし0, 1 を除く)を出力してみた。

a(n) = for(k=2, n, if(ispolygonal(m=k*(k+1)*((n-2)*k-n+5)/6, n), print(n, ": ", [k, m])));
for(n=3, 100000, a(n))

出力結果
3: [3, 10]
10: [5, 175]
14: [6, 441]
30: [17, 23001]
43: [33, 245905]
50: [34, 314755]
88: [15, 48280]
276: [26, 801801]
322: [28, 1169686]
823: [113, 197427385]
2378: [103, 432684460]
2386: [420, 29437553530]
9525: [2169, 16195753597485]
16420: [6936, 913053565546276]
19605: [1191, 5519583702676]
31265: [259, 90525801730]
31368: [14858, 17147031694579605]
83135: [1310, 31148407558500]

2021年5月17日月曜日

210517

PARI


Sum_{n = 1..24} n^2 = 70^2(5)

n-gonal number であり、n-gonal pyramidal number である数を出力してみた。

a(n) = print1(n, ": "); for(k=0, 1e6, if(ispolygonal(m=k*(k+1)*((n-2)*k-n+5)/6, n), print1(m, ", "))); print;
for(n=3, 1000, a(n))

出力結果
3: 0, 1, 10, 120, 1540, 7140, 
4: 0, 1, 4900, 
5: 0, 1, 
6: 0, 1, 946, 
7: 0, 1, 
8: 0, 1, 1045, 5985, 123395663059845, 774611255177760, 
9: 0, 1, 
10: 0, 1, 175, 368050005576, 
11: 0, 1, 23725, 1519937678700, 7248070597636, 
12: 0, 1, 
13: 0, 1, 
14: 0, 1, 441, 195661, 
15: 0, 1, 
16: 0, 1, 
17: 0, 1, 975061, 1580765544996, 
18: 0, 1, 
19: 0, 1, 
20: 0, 1, 3578401, 
21: 0, 1, 
22: 0, 1, 
23: 0, 1, 10680265, 
24: 0, 1, 
25: 0, 1, 
26: 0, 1, 27453385, 
27: 0, 1, 
28: 0, 1, 
29: 0, 1, 63016921, 
30: 0, 1, 23001, 
31: 0, 1, 
32: 0, 1, 132361021, 
33: 0, 1, 
34: 0, 1, 
35: 0, 1, 258815701, 
36: 0, 1, 
37: 0, 1, 
38: 0, 1, 477132085, 
39: 0, 1, 
40: 0, 1, 
41: 0, 1, 55202400, 837244045, 
42: 0, 1, 
43: 0, 1, 245905, 
44: 0, 1, 1408778281, 
45: 0, 1, 
46: 0, 1, 
47: 0, 1, 2286380881, 
48: 0, 1, 
49: 0, 1, 
50: 0, 1, 314755, 3595928401, 
51: 0, 1, 
52: 0, 1, 
53: 0, 1, 5501691505, 
54: 0, 1, 
55: 0, 1, 
56: 0, 1, 8214519205, 
57: 0, 1, 
58: 0, 1, 
59: 0, 1, 12001111741, 
60: 0, 1, 1785508245600, 
61: 0, 1, 
62: 0, 1, 17194450141, 
63: 0, 1, 
64: 0, 1, 
65: 0, 1, 24205450501, 
66: 0, 1, 
67: 0, 1, 
68: 0, 1, 33535911025, 
69: 0, 1, 
70: 0, 1, 
71: 0, 1, 45792819865, 
72: 0, 1, 
73: 0, 1, 
74: 0, 1, 61704091801, 
75: 0, 1, 
76: 0, 1, 
77: 0, 1, 82135801801, 
78: 0, 1, 
79: 0, 1, 
80: 0, 1, 108110983501, 
81: 0, 1, 
82: 0, 1, 
83: 0, 1, 140830060645, 
84: 0, 1, 
85: 0, 1, 
86: 0, 1, 181692979525, 
87: 0, 1, 
88: 0, 1, 48280, 
89: 0, 1, 232323110461, 
90: 0, 1, 
91: 0, 1, 
92: 0, 1, 294592986361, 
93: 0, 1, 
94: 0, 1, 
95: 0, 1, 370651946401, 
96: 0, 1, 
97: 0, 1, 
98: 0, 1, 462955752865, 
99: 0, 1, 
100: 0, 1, 
101: 0, 1, 574298249185, 
102: 0, 1, 
103: 0, 1, 
104: 0, 1, 707845127221, 
105: 0, 1, 
106: 0, 1, 
107: 0, 1, 867169871821, 
108: 0, 1, 
109: 0, 1, 
110: 0, 1, 1056291950701, 
111: 0, 1, 
112: 0, 1, 
113: 0, 1, 1279717317685, 
114: 0, 1, 
115: 0, 1, 
116: 0, 1, 1542481297345, 
117: 0, 1, 
118: 0, 1, 
119: 0, 1, 1850193919081, 
120: 0, 1, 
121: 0, 1, 
122: 0, 1, 2209087768681, 
123: 0, 1, 
124: 0, 1, 
125: 0, 1, 2626068425401, 
126: 0, 1, 
127: 0, 1, 
128: 0, 1, 3108767552605, 
129: 0, 1, 
130: 0, 1, 
131: 0, 1, 3665598710005, 
132: 0, 1, 
133: 0, 1, 
134: 0, 1, 4305815955541, 
135: 0, 1, 
136: 0, 1, 
137: 0, 1, 5039575304941, 
138: 0, 1, 
139: 0, 1, 
140: 0, 1, 5877999117001, 
141: 0, 1, 
142: 0, 1, 
143: 0, 1, 6833243472625, 
144: 0, 1, 
145: 0, 1, 101337426, 
146: 0, 1, 7918568615665, 
147: 0, 1, 
148: 0, 1, 
149: 0, 1, 9148412523601, 
150: 0, 1, 
151: 0, 1, 
152: 0, 1, 10538467676101, 
153: 0, 1, 
154: 0, 1, 
155: 0, 1, 12105761089501, 
156: 0, 1, 
157: 0, 1, 
158: 0, 1, 13868737685245, 
159: 0, 1, 
160: 0, 1, 
161: 0, 1, 15847347060325, 
162: 0, 1, 
163: 0, 1, 
164: 0, 1, 18063133727761, 
165: 0, 1, 
166: 0, 1, 
167: 0, 1, 20539330895161, 
168: 0, 1, 
169: 0, 1, 
170: 0, 1, 23300957849401, 
171: 0, 1, 
172: 0, 1, 
173: 0, 1, 26374921015465, 
174: 0, 1, 
175: 0, 1, 
176: 0, 1, 29790118757485, 
177: 0, 1, 
178: 0, 1, 
179: 0, 1, 33577549990021, 
180: 0, 1, 
181: 0, 1, 
182: 0, 1, 37770426667621, 
183: 0, 1, 
184: 0, 1, 
185: 0, 1, 42404290220701, 
186: 0, 1, 
187: 0, 1, 
188: 0, 1, 47517132005785, 
189: 0, 1, 
190: 0, 1, 
191: 0, 1, 53149517838145, 
192: 0, 1, 
193: 0, 1, 
194: 0, 1, 59344716674881, 
195: 0, 1, 
196: 0, 1, 
197: 0, 1, 66148833516481, 
198: 0, 1, 
199: 0, 1, 
200: 0, 1, 73610946594901, 
201: 0, 1, 
202: 0, 1, 
203: 0, 1, 81783248916205, 
204: 0, 1, 
205: 0, 1, 
206: 0, 1, 90721194225805, 
207: 0, 1, 
208: 0, 1, 
209: 0, 1, 100483647464341, 
210: 0, 1, 
211: 0, 1, 
212: 0, 1, 111133039782241, 
213: 0, 1, 
214: 0, 1, 
215: 0, 1, 122735528181001, 
216: 0, 1, 
217: 0, 1, 
218: 0, 1, 135361159849225, 
219: 0, 1, 
220: 0, 1, 
221: 0, 1, 149084041261465, 
222: 0, 1, 
223: 0, 1, 
224: 0, 1, 163982512107901, 
225: 0, 1, 
226: 0, 1, 
227: 0, 1, 180139324122901, 
228: 0, 1, 
229: 0, 1, 
230: 0, 1, 197641824880501, 
231: 0, 1, 
232: 0, 1, 
233: 0, 1, 216582146624845, 
234: 0, 1, 
235: 0, 1, 
236: 0, 1, 237057400203625, 
237: 0, 1, 
238: 0, 1, 
239: 0, 1, 259169874172561, 
240: 0, 1, 
241: 0, 1, 
242: 0, 1, 283027239138961, 
243: 0, 1, 
244: 0, 1, 
245: 0, 1, 308742757412401, 
246: 0, 1, 
247: 0, 1, 
248: 0, 1, 336435498030565, 
249: 0, 1, 
250: 0, 1, 
251: 0, 1, 366230557228285, 
252: 0, 1, 
253: 0, 1, 
254: 0, 1, 398259284417821, 
255: 0, 1, 
256: 0, 1, 
257: 0, 1, 432659513748421, 
258: 0, 1, 
259: 0, 1, 
260: 0, 1, 469575801313201, 
261: 0, 1, 
262: 0, 1, 
263: 0, 1, 509159668071385, 
264: 0, 1, 
265: 0, 1, 
266: 0, 1, 551569848553945, 
267: 0, 1, 
268: 0, 1, 
269: 0, 1, 596972545420681, 
270: 0, 1, 
271: 0, 1, 
272: 0, 1, 645541689936781, 
273: 0, 1, 
274: 0, 1, 
275: 0, 1, 697459208436901, 
276: 0, 1, 801801, 
277: 0, 1, 
278: 0, 1, 752915294844805, 
279: 0, 1, 
280: 0, 1, 
281: 0, 1, 812108689316605, 
282: 0, 1, 
283: 0, 1, 
284: 0, 1, 875246963075641, 
285: 0, 1, 
286: 0, 1, 
287: 0, 1, 942546809507041, 
288: 0, 1, 
289: 0, 1, 
290: 0, 1, 1014234341580001, 
291: 0, 1, 
292: 0, 1, 
293: 0, 1, 1090545395665825, 
294: 0, 1, 
295: 0, 1, 
296: 0, 1, 1171725841819765, 
297: 0, 1, 
298: 0, 1, 
299: 0, 1, 1258031900594701, 
300: 0, 1, 
301: 0, 1, 
302: 0, 1, 1349730466454701, 
303: 0, 1, 
304: 0, 1, 
305: 0, 1, 1447099437856501, 
306: 0, 1, 
307: 0, 1, 
308: 0, 1, 1550428054066945, 
309: 0, 1, 
310: 0, 1, 
311: 0, 1, 1660017238784425, 
312: 0, 1, 
313: 0, 1, 
314: 0, 1, 1776179950632361, 
315: 0, 1, 
316: 0, 1, 
317: 0, 1, 1899241540592761, 
318: 0, 1, 
319: 0, 1, 
320: 0, 1, 2029540116447901, 
321: 0, 1, 
322: 0, 1, 1169686, 
323: 0, 1, 2167426914298165, 
324: 0, 1, 
325: 0, 1, 
326: 0, 1, 2313266677224085, 
327: 0, 1, 
328: 0, 1, 
329: 0, 1, 2467438041160621, 
330: 0, 1, 
331: 0, 1, 
332: 0, 1, 2630333928051721, 
333: 0, 1, 
334: 0, 1, 
335: 0, 1, 2802361946353201, 
336: 0, 1, 
337: 0, 1, 
338: 0, 1, 2983944798951985, 
339: 0, 1, 
340: 0, 1, 
341: 0, 1, 3175520698569745, 
342: 0, 1, 
343: 0, 1, 
344: 0, 1, 3377543790718981, 
345: 0, 1, 
346: 0, 1, 
347: 0, 1, 3590484584279581, 
348: 0, 1, 
349: 0, 1, 
350: 0, 1, 3814830389763901, 
351: 0, 1, 
352: 0, 1, 
353: 0, 1, 4051085765338405, 
354: 0, 1, 
355: 0, 1, 
356: 0, 1, 4299772970669905, 
357: 0, 1, 
358: 0, 1, 
359: 0, 1, 4561432428664441, 
360: 0, 1, 
361: 0, 1, 
362: 0, 1, 4836623195166841, 
363: 0, 1, 
364: 0, 1, 
365: 0, 1, 5125923436689001, 
366: 0, 1, 
367: 0, 1, 
368: 0, 1, 5429930916234925, 
369: 0, 1, 
370: 0, 1, 
371: 0, 1, 5749263487290565, 
372: 0, 1, 
373: 0, 1, 
374: 0, 1, 15064335000, 6084559596046501, 
375: 0, 1, 
376: 0, 1, 
377: 0, 1, 6436478791921501, 
378: 0, 1, 
379: 0, 1, 
380: 0, 1, 6805702246455001, 
381: 0, 1, 
382: 0, 1, 
383: 0, 1, 7192933280636545, 
384: 0, 1, 
385: 0, 1, 
386: 0, 1, 7598897900740225, 
387: 0, 1, 
388: 0, 1, 
389: 0, 1, 8024345342732161, 
390: 0, 1, 
391: 0, 1, 
392: 0, 1, 8470048625319061, 
393: 0, 1, 
394: 0, 1, 
395: 0, 1, 8936805111705901, 
396: 0, 1, 
397: 0, 1, 
398: 0, 1, 9425437080130765, 
399: 0, 1, 
400: 0, 1, 
401: 0, 1, 9936792303244885, 
402: 0, 1, 
403: 0, 1, 
404: 0, 1, 10471744636405921, 
405: 0, 1, 
406: 0, 1, 
407: 0, 1, 11031194614952521, 
408: 0, 1, 
409: 0, 1, 
410: 0, 1, 11616070060528201, 
411: 0, 1, 
412: 0, 1, 
413: 0, 1, 12227326696522585, 
414: 0, 1, 
415: 0, 1, 
416: 0, 1, 12865948772698045, 
417: 0, 1, 
418: 0, 1, 
419: 0, 1, 13532949699069781, 
420: 0, 1, 
421: 0, 1, 
422: 0, 1, 14229372689107381, 
423: 0, 1, 
424: 0, 1, 
425: 0, 1, 14956291412325901, 
426: 0, 1, 
427: 0, 1, 
428: 0, 1, 15714810656334505, 
429: 0, 1, 
430: 0, 1, 
431: 0, 1, 16506066998410705, 
432: 0, 1, 
433: 0, 1, 
434: 0, 1, 17331229486668241, 
435: 0, 1, 
436: 0, 1, 
437: 0, 1, 18191500330886641, 
438: 0, 1, 
439: 0, 1, 
440: 0, 1, 19088115603070501, 
441: 0, 1, 
442: 0, 1, 
443: 0, 1, 20022345947806525, 
444: 0, 1, 
445: 0, 1, 
446: 0, 1, 20995497302486365, 
447: 0, 1, 
448: 0, 1, 
449: 0, 1, 22008911627463301, 
450: 0, 1, 
451: 0, 1, 
452: 0, 1, 23063967646210801, 
453: 0, 1, 
454: 0, 1, 
455: 0, 1, 24162081595551001, 
456: 0, 1, 
457: 0, 1, 
458: 0, 1, 25304707986021145, 
459: 0, 1, 
460: 0, 1, 
461: 0, 1, 26493340372446025, 
462: 0, 1, 
463: 0, 1, 
464: 0, 1, 27729512134784461, 
465: 0, 1, 
466: 0, 1, 
467: 0, 1, 29014797269317861, 
468: 0, 1, 
469: 0, 1, 
470: 0, 1, 30350811190248901, 
471: 0, 1, 
472: 0, 1, 
473: 0, 1, 31739211541778365, 
474: 0, 1, 
475: 0, 1, 
476: 0, 1, 33181699020728185, 
477: 0, 1, 
478: 0, 1, 
479: 0, 1, 34680018209778721, 
480: 0, 1, 
481: 0, 1, 
482: 0, 1, 36235958421388321, 
483: 0, 1, 
484: 0, 1, 
485: 0, 1, 37851354552463201, 
486: 0, 1, 
487: 0, 1, 
488: 0, 1, 39528087949845685, 
489: 0, 1, 
490: 0, 1, 
491: 0, 1, 41268087286688845, 
492: 0, 1, 
493: 0, 1, 
494: 0, 1, 43073329449785581, 
495: 0, 1, 
496: 0, 1, 
497: 0, 1, 44945840437920181, 
498: 0, 1, 
499: 0, 1, 
500: 0, 1, 46887696271310401, 
501: 0, 1, 
502: 0, 1, 
503: 0, 1, 48901023912208105, 
504: 0, 1, 
505: 0, 1, 
506: 0, 1, 50988002196726505, 
507: 0, 1, 
508: 0, 1, 
509: 0, 1, 53150862777962041, 
510: 0, 1, 
511: 0, 1, 
512: 0, 1, 55391891080478941, 
513: 0, 1, 
514: 0, 1, 
515: 0, 1, 57713427266224501, 
516: 0, 1, 
517: 0, 1, 
518: 0, 1, 60117867211943125, 
519: 0, 1, 
520: 0, 1, 
521: 0, 1, 62607663498157165, 
522: 0, 1, 
523: 0, 1, 
524: 0, 1, 65185326409782601, 
525: 0, 1, 
526: 0, 1, 
527: 0, 1, 67853424948447601, 
528: 0, 1, 
529: 0, 1, 
530: 0, 1, 70614587856582001, 
531: 0, 1, 
532: 0, 1, 
533: 0, 1, 73471504653345745, 
534: 0, 1, 
535: 0, 1, 
536: 0, 1, 76426926682464325, 
537: 0, 1, 
538: 0, 1, 
539: 0, 1, 79483668172039261, 
540: 0, 1, 
541: 0, 1, 
542: 0, 1, 82644607306401661, 
543: 0, 1, 
544: 0, 1, 
545: 0, 1, 85912687310076901, 
546: 0, 1, 
547: 0, 1, 
548: 0, 1, 89290917543928465, 
549: 0, 1, 
550: 0, 1, 
551: 0, 1, 92782374613548985, 
552: 0, 1, 
553: 0, 1, 
554: 0, 1, 96390203489966521, 
555: 0, 1, 
556: 0, 1, 
557: 0, 1, 100117618642734121, 
558: 0, 1, 
559: 0, 1, 
560: 0, 1, 103967905185470701, 
561: 0, 1, 
562: 0, 1, 
563: 0, 1, 107944420033921285, 
564: 0, 1, 
565: 0, 1, 
566: 0, 1, 112050593076604645, 
567: 0, 1, 
568: 0, 1, 
569: 0, 1, 116289928358116381, 
570: 0, 1, 
571: 0, 1, 
572: 0, 1, 120666005275155481, 
573: 0, 1, 
574: 0, 1, 
575: 0, 1, 125182479785342401, 
576: 0, 1, 
577: 0, 1, 
578: 0, 1, 129843085628896705, 
579: 0, 1, 
580: 0, 1, 
581: 0, 1, 134651635563242305, 
582: 0, 1, 
583: 0, 1, 
584: 0, 1, 139612022610608341, 
585: 0, 1, 
586: 0, 1, 
587: 0, 1, 144728221318693741, 
588: 0, 1, 
589: 0, 1, 
590: 0, 1, 150004289034463501, 
591: 0, 1, 
592: 0, 1, 
593: 0, 1, 155444367191144725, 
594: 0, 1, 
595: 0, 1, 
596: 0, 1, 161052682608490465, 
597: 0, 1, 
598: 0, 1, 
599: 0, 1, 166833548806379401, 
600: 0, 1, 
601: 0, 1, 
602: 0, 1, 172791367331819401, 
603: 0, 1, 
604: 0, 1, 
605: 0, 1, 178930629099423001, 
606: 0, 1, 
607: 0, 1, 
608: 0, 1, 185255915745422845, 
609: 0, 1, 
610: 0, 1, 
611: 0, 1, 191771900995295125, 
612: 0, 1, 
613: 0, 1, 
614: 0, 1, 198483352045059061, 
615: 0, 1, 
616: 0, 1, 
617: 0, 1, 205395130956320461, 
618: 0, 1, 
619: 0, 1, 
620: 0, 1, 212512196065127401, 
621: 0, 1, 
622: 0, 1, 
623: 0, 1, 219839603404706065, 
624: 0, 1, 
625: 0, 1, 
626: 0, 1, 227382508142144785, 
627: 0, 1, 
628: 0, 1, 
629: 0, 1, 235146166029094321, 
630: 0, 1, 
631: 0, 1, 
632: 0, 1, 243135934866552421, 
633: 0, 1, 
634: 0, 1, 
635: 0, 1, 251357275983800701, 
636: 0, 1, 
637: 0, 1, 
638: 0, 1, 259815755731561885, 
639: 0, 1, 
640: 0, 1, 
641: 0, 1, 268517046989445445, 
642: 0, 1, 
643: 0, 1, 
644: 0, 1, 277466930687749681, 
645: 0, 1, 
646: 0, 1, 
647: 0, 1, 286671297343688281, 
648: 0, 1, 
649: 0, 1, 
650: 0, 1, 296136148612109401, 
651: 0, 1, 
652: 0, 1, 
653: 0, 1, 305867598850775305, 
654: 0, 1, 
655: 0, 1, 
656: 0, 1, 315871876700270605, 
657: 0, 1, 
658: 0, 1, 
659: 0, 1, 326155326678607141, 
660: 0, 1, 
661: 0, 1, 
662: 0, 1, 336724410790593541, 
663: 0, 1, 
664: 0, 1, 
665: 0, 1, 347585710152037501, 
666: 0, 1, 
667: 0, 1, 
668: 0, 1, 358745926628848825, 
669: 0, 1, 
670: 0, 1, 
671: 0, 1, 370211884491111265, 
672: 0, 1, 
673: 0, 1, 
674: 0, 1, 381990532082191201, 
675: 0, 1, 
676: 0, 1, 
677: 0, 1, 394088943502951201, 
678: 0, 1, 
679: 0, 1, 
680: 0, 1, 406514320311136501, 
681: 0, 1, 
682: 0, 1, 
683: 0, 1, 419273993236002445, 
684: 0, 1, 
685: 0, 1, 
686: 0, 1, 432375423908250925, 
687: 0, 1, 
688: 0, 1, 
689: 0, 1, 445826206605343861, 
690: 0, 1, 
691: 0, 1, 
692: 0, 1, 459634070012261761, 
693: 0, 1, 
694: 0, 1, 
695: 0, 1, 473806878997775401, 
696: 0, 1, 
697: 0, 1, 
698: 0, 1, 488352636406298665, 
699: 0, 1, 
700: 0, 1, 
701: 0, 1, 503279484865390585, 
702: 0, 1, 
703: 0, 1, 
704: 0, 1, 518595708608974621, 
705: 0, 1, 
706: 0, 1, 
707: 0, 1, 534309735316343221, 
708: 0, 1, 
709: 0, 1, 
710: 0, 1, 550430137967015701, 
711: 0, 1, 
712: 0, 1, 
713: 0, 1, 566965636711517485, 
714: 0, 1, 
715: 0, 1, 
716: 0, 1, 583925100758148745, 
717: 0, 1, 
718: 0, 1, 
719: 0, 1, 601317550275810481, 
720: 0, 1, 
721: 0, 1, 
722: 0, 1, 619152158312956081, 
723: 0, 1, 
724: 0, 1, 
725: 0, 1, 637438252732736401, 
726: 0, 1, 
727: 0, 1, 
728: 0, 1, 656185318164406405, 
729: 0, 1, 
730: 0, 1, 
731: 0, 1, 675402997971061405, 
732: 0, 1, 
733: 0, 1, 
734: 0, 1, 695101096233770941, 
735: 0, 1, 
736: 0, 1, 
737: 0, 1, 715289579752178341, 
738: 0, 1, 
739: 0, 1, 
740: 0, 1, 735978580061634001, 
741: 0, 1, 
742: 0, 1, 
743: 0, 1, 757178395466930425, 
744: 0, 1, 
745: 0, 1, 
746: 0, 1, 778899493092707065, 
747: 0, 1, 
748: 0, 1, 
749: 0, 1, 801152510950593001, 
750: 0, 1, 
751: 0, 1, 
752: 0, 1, 823948260023155501, 
753: 0, 1, 
754: 0, 1, 
755: 0, 1, 847297726364722501, 
756: 0, 1, 
757: 0, 1, 
758: 0, 1, 871212073219147045, 
759: 0, 1, 
760: 0, 1, 
761: 0, 1, 895702643154581725, 
762: 0, 1, 
763: 0, 1, 
764: 0, 1, 920780960215331161, 
765: 0, 1, 
766: 0, 1, 
767: 0, 1, 946458732090850561, 
768: 0, 1, 
769: 0, 1, 
770: 0, 1, 972747852301958401, 
771: 0, 1, 
772: 0, 1, 
773: 0, 1, 999660402404331265, 
774: 0, 1, 
775: 0, 1, 
776: 0, 1, 1027208654209348885, 
777: 0, 1, 
778: 0, 1, 
779: 0, 1, 1055405072022357421, 
780: 0, 1, 
781: 0, 1, 
782: 0, 1, 1084262314898419021, 
783: 0, 1, 
784: 0, 1, 
785: 0, 1, 1113793238915615701, 
786: 0, 1, 
787: 0, 1, 
788: 0, 1, 1144010899465975585, 
789: 0, 1, 
790: 0, 1, 
791: 0, 1, 1174928553564089545, 
792: 0, 1, 
793: 0, 1, 
794: 0, 1, 1206559662173486281, 
795: 0, 1, 
796: 0, 1, 
797: 0, 1, 1238917892550833881, 
798: 0, 1, 
799: 0, 1, 
800: 0, 1, 1272017120608035901, 
801: 0, 1, 
802: 0, 1, 
803: 0, 1, 1305871433292290005, 
804: 0, 1, 
805: 0, 1, 
806: 0, 1, 1340495130984177205, 
807: 0, 1, 
808: 0, 1, 
809: 0, 1, 1375902729913849741, 
810: 0, 1, 
811: 0, 1, 
812: 0, 1, 1412108964595385641, 
813: 0, 1, 
814: 0, 1, 
815: 0, 1, 1449128790279378001, 
816: 0, 1, 
817: 0, 1, 
818: 0, 1, 1486977385423827025, 
819: 0, 1, 
820: 0, 1, 
821: 0, 1, 1525670154183402865, 
822: 0, 1, 
823: 0, 1, 197427385, 
824: 0, 1, 1565222728917147301, 
825: 0, 1, 
826: 0, 1, 
827: 0, 1, 1605650972714682301, 
828: 0, 1, 
829: 0, 1, 
830: 0, 1, 1646970981940993501, 
831: 0, 1, 
832: 0, 1, 
833: 0, 1, 1689199088799856645, 
834: 0, 1, 
835: 0, 1, 
836: 0, 1, 1732351863915975025, 
837: 0, 1, 
838: 0, 1, 
839: 0, 1, 1776446118935895961, 
840: 0, 1, 
841: 0, 1, 
842: 0, 1, 1821498909147774361, 
843: 0, 1, 
844: 0, 1, 
845: 0, 1, 1867527536120051401, 
846: 0, 1, 
847: 0, 1, 
848: 0, 1, 1914549550359116365, 
849: 0, 1, 
850: 0, 1, 
851: 0, 1, 1962582753986019685, 
852: 0, 1, 
853: 0, 1, 
854: 0, 1, 2011645203432305221, 
855: 0, 1, 
856: 0, 1, 
857: 0, 1, 2061755212155029821, 
858: 0, 1, 
859: 0, 1, 
860: 0, 1, 2112931353371038201, 
861: 0, 1, 
862: 0, 1, 
863: 0, 1, 2165192462810561185, 
864: 0, 1, 
865: 0, 1, 
866: 0, 1, 2218557641490205345, 
867: 0, 1, 
868: 0, 1, 
869: 0, 1, 2273046258505402081, 
870: 0, 1, 
871: 0, 1, 
872: 0, 1, 2328677953842384181, 
873: 0, 1, 
874: 0, 1, 
875: 0, 1, 2385472641209757901, 
876: 0, 1, 
877: 0, 1, 
878: 0, 1, 2443450510889738605, 
879: 0, 1, 
880: 0, 1, 
881: 0, 1, 2502632032609118005, 
882: 0, 1, 
883: 0, 1, 
884: 0, 1, 2563037958430031041, 
885: 0, 1, 
886: 0, 1, 
887: 0, 1, 2624689325660590441, 
888: 0, 1, 
889: 0, 1, 
890: 0, 1, 2687607459785457001, 
891: 0, 1, 
892: 0, 1, 
893: 0, 1, 2751813977416413625, 
894: 0, 1, 
895: 0, 1, 
896: 0, 1, 2817330789263011165, 
897: 0, 1, 
898: 0, 1, 
899: 0, 1, 2884180103123354101, 
900: 0, 1, 
901: 0, 1, 
902: 0, 1, 2952384426895094101, 
903: 0, 1, 
904: 0, 1, 
905: 0, 1, 3021966571606699501, 
906: 0, 1, 
907: 0, 1, 
908: 0, 1, 3092949654469068745, 
909: 0, 1, 
910: 0, 1, 
911: 0, 1, 3165357101947555825, 
912: 0, 1, 
913: 0, 1, 
914: 0, 1, 3239212652854475761, 
915: 0, 1, 
916: 0, 1, 
917: 0, 1, 3314540361462158161, 
918: 0, 1, 
919: 0, 1, 
920: 0, 1, 3391364600636616901, 
921: 0, 1, 
922: 0, 1, 
923: 0, 1, 3469710064991903965, 
924: 0, 1, 
925: 0, 1, 
926: 0, 1, 3549601774065215485, 
927: 0, 1, 
928: 0, 1, 
929: 0, 1, 3631065075512818021, 
930: 0, 1, 
931: 0, 1, 
932: 0, 1, 3714125648326863121, 
933: 0, 1, 
934: 0, 1, 
935: 0, 1, 3798809506073158201, 
936: 0, 1, 
937: 0, 1, 
938: 0, 1, 3885143000149961785, 
939: 0, 1, 
940: 0, 1, 
941: 0, 1, 3973152823067871145, 
942: 0, 1, 
943: 0, 1, 
944: 0, 1, 4062866011750870381, 
945: 0, 1, 
946: 0, 1, 
947: 0, 1, 4154309950858606981, 
948: 0, 1, 
949: 0, 1, 
950: 0, 1, 4247512376129964901, 
951: 0, 1, 
952: 0, 1, 
953: 0, 1, 4342501377748002205, 
954: 0, 1, 
955: 0, 1, 
956: 0, 1, 4439305403726321305, 
957: 0, 1, 
958: 0, 1, 
959: 0, 1, 4537953263316939841, 
960: 0, 1, 
961: 0, 1, 
962: 0, 1, 4638474130439730241, 
963: 0, 1, 
964: 0, 1, 
965: 0, 1, 4740897547133496001, 
966: 0, 1, 
967: 0, 1, 
968: 0, 1, 4845253427028752725, 
969: 0, 1, 
970: 0, 1, 
971: 0, 1, 4951572058842281965, 
972: 0, 1, 
973: 0, 1, 
974: 0, 1, 5059884109893525901, 
975: 0, 1, 
976: 0, 1, 
977: 0, 1, 5170220629642890901, 
978: 0, 1, 
979: 0, 1, 
980: 0, 1, 5282613053252028001, 
981: 0, 1, 
982: 0, 1, 
983: 0, 1, 5397093205166158345, 
984: 0, 1, 
985: 0, 1, 
986: 0, 1, 5513693302718511625, 
987: 0, 1, 
988: 0, 1, 
989: 0, 1, 5632445959756945561, 
990: 0, 1, 
991: 0, 1, 
992: 0, 1, 5753384190292814461, 
993: 0, 1, 
994: 0, 1, 
995: 0, 1, 5876541412172154901, 
996: 0, 1, 
997: 0, 1, 
998: 0, 1, 6001951450769256565, 
999: 0, 1, 
1000: 0, 1, 

2021年5月16日日曜日

210516

Ruby


Sum_{n = 1..24} n^2 = 70^2(4)

https://www.youtube.com/watch?v=q6L06pyt9CA

この動画に出てくる内容について出力してみた。

# polygonal number
def p_k(k, n)
  n * ((k - 2) * n - k + 4) / 2
end

# Sum_{j=1..n} p_k(k, j)
def q_k(k, n)
  (1..n).inject(0){|s, i| s + p_k(k, i)}
end

def f(k, m, n)
  p k
  p [m, q_k(k, m)]
  p [n, p_k(k, n)]
end

f(4, 24, 70)
f(8, 10, 19)
f(8, 18, 45)
f(31265, 259, 2407)

出力結果
4
[24, 4900]
[70, 4900]
8
[10, 1045]
[19, 1045]
8
[18, 5985]
[45, 5985]
31265
[259, 90525801730]
[2407, 90525801730]

2021年5月1日土曜日

210501

Ruby


(1/e) * Sum_{a_1>=1, a_2>=1, ... , a_n>=1} a_1 * a_2 * ... * a_k / (a_1 + a_2 + ... + a_n)!

O. Furdui, Limits, Series and Fractional Part Integrals
の3章のOpen Problemの一つに
Sum_{a_1>=1, a_2>=1, ... , a_n>=1} a_1 * a_2 * ... * a_n / (a_1 + a_2 + ... + a_n)!
が 有理数 * e と書けるかいう問題があるが、
より一般的に、1 <= k <= n のとき、
Sum_{a_1>=1, a_2>=1, ... , a_n>=1} a_1 * a_2 * ... * a_k / (a_1 + a_2 + ... + a_n)!
が 有理数 * e と書ける。
この有理数すなわち
(1/e) * Sum_{a_1>=1, a_2>=1, ... , a_n>=1} a_1 * a_2 * ... * a_k / (a_1 + a_2 + ... + a_n)!
を出力してみた。

def f(n)
  return 1 if n < 2
  (1..n).inject(:*)
end

def ncr(n, r)
  return 1 if r == 0
  (n - r + 1..n).inject(:*) / (1..r).inject(:*)
end

def A(k, n)
  (0..k - 1).inject(0){|s, i| s + ncr(k - 1, i) / f(i + n).to_r}
end

n = 6
(1..n).each{|i|
  p [i, (1..i).map{|j| A(j, i)}]
}

出力結果
[1, [(1/1)]]
[2, [(1/2), (2/3)]]
[3, [(1/6), (5/24), (31/120)]]
[4, [(1/24), (1/20), (43/720), (179/2520)]]
[5, [(1/120), (7/720), (19/1680), (529/40320), (787/51840)]]
[6, [(1/720), (1/630), (73/40320), (187/90720), (8501/3628800), (6631/2494800)]]

2021年4月3日土曜日

210403

Ruby


Number of tilings of a <n,k,n> hexagon

一般化された二項係数を利用し計算してみた。

def ncr(n, r)
  return 1 if r == 0
  (n - r + 1..n).inject(:*) / (1..r).inject(:*)
end

# generalized binomial coefficient (n,r)_m
def g_ncr_m(n, r, m = 1)
  # to_rとto_iは念のため
  (1..r).inject(1){|s, i| s * ncr(n - i + m, m) / ncr(i - 1 + m, m).to_r}.to_i
end

n = 10
(0..n).each{|i|
  p [i, (0..5).map{|j| g_ncr_m(i + j, i, i)}]
}

出力結果
[0, [1, 1, 1, 1, 1, 1]]
[1, [1, 2, 3, 4, 5, 6]]
[2, [1, 6, 20, 50, 105, 196]]
[3, [1, 20, 175, 980, 4116, 14112]]
[4, [1, 70, 1764, 24696, 232848, 1646568]]
[5, [1, 252, 19404, 731808, 16818516, 267227532]]
[6, [1, 924, 226512, 24293412, 1447482465, 55197331332]]
[7, [1, 3432, 2760615, 877262100, 142174944340, 13710834632352]]
[8, [1, 12870, 34763300, 33803832920, 15484613937936, 3940599631842016]]
[9, [1, 48620, 449141836, 1371597504992, 1832516612010448, 1274867710694037824]]
[10, [1, 184756, 5924217936, 58043512597616, 232187445047217296, 454924095627897307776]]

2021年3月6日土曜日

210306

Ruby


チェビシェフ多項式の明示的な式を利用した計算

T_n(n+k), U_n(n+k)の値を、
明示的な式を利用し計算してみた。

def ncr(n, r)
  return 1 if r == 0
  (n - r + 1..n).inject(:*) / (1..r).inject(:*)
end

# n >= 0, m = 1 or 2
def chebyshev(n, m, k)
  if m == 2
    return (0..n).inject(0){|s, i| s + (2 * k - 2) ** i * ncr(n + 1 + i, 2 * i + 1)}
  elsif m == 1
    if n == 0
      return 1
    else
      return (n * (0..n).inject(0){|s, i| s + (2 * k - 2) ** i * ncr(n + i, 2 * i) / (n + i.to_r)}).to_i
    end
  end
end

K = 5
N = 9
(0..K).each{|k|
  p [k, (0..N).map{|i| chebyshev(i, 1, i + k)}]
}
(0..K).each{|k|
  p [k, (0..N).map{|i| chebyshev(i, 2, i + k)}]
}

出力結果
[0, [1, 1, 7, 99, 1921, 47525, 1431431, 50843527, 2081028097, 96450076809]]
[1, [1, 2, 17, 244, 4801, 120126, 3650401, 130576328, 5374978561, 250283080090]]
[2, [1, 3, 31, 485, 10081, 262087, 8193151, 299537289, 12545596801, 592479412811]]
[3, [1, 4, 49, 846, 18817, 514088, 16692641, 628855930, 26986755841, 1300371936876]]
[4, [1, 5, 71, 1351, 32257, 930249, 31521799, 1229215691, 54276558337, 2678768828749]]
[5, [1, 6, 97, 2024, 51841, 1580050, 55989361, 2265463212, 103182433537, 5228741809214]]
[0, [1, 2, 15, 204, 3905, 96030, 2883167, 102213944, 4178507265, 193501094490]]
[1, [1, 4, 35, 496, 9701, 241956, 7338631, 262184896, 10783446409, 501827040100]]
[2, [1, 6, 63, 980, 20305, 526890, 16451071, 600940872, 25154396001, 1187422368110]]
[3, [1, 8, 99, 1704, 37829, 1032240, 33489287, 1260879920, 54085723209, 2605282707576]]
[4, [1, 10, 143, 2716, 64769, 1866294, 63202399, 2463542488, 108742564225, 5365498355074]]
[5, [1, 12, 195, 4064, 104005, 3168060, 112211527, 4538833824, 206671502025, 10470873504140]]

2021年2月23日火曜日

210223

PARI


Number of perfect matchings in the graph C_{2n} X C_k

kが3以上のとき、計算してみた。

a341533(n, k) = round(sqrt(prod(a=1, n,   prod(b=1, k,   4*sin((2*a-1)*Pi/(2*n))^2+4*sin((2*b-1)*Pi/k)^2))));
a341738(n, k) = round(sqrt(prod(a=1, n,   prod(b=1, k-1, 4*sin((2*a-1)*Pi/(2*n))^2+4*sin(2*b*Pi/k)^2))));
a341739(n, k) = round(     prod(a=1, n-1, prod(b=1, k,   4*sin(a*Pi/n)^2          +4*sin((2*b-1)*Pi/(2*k))^2)));
T(n, k) = a341533(n, k)/2+a341738(n, k)+2*((k+1)%2)*a341739(n, ceil(k/2));

K=7;
for(n=2, 10, for(k=3, K, print1(T(n, k), ", ")); print)

出力結果
50, 272, 722, 3108, 10082, 
224, 3108, 9922, 90176, 401998, 
1058, 39952, 155682, 3113860, 19681538, 
5054, 537636, 2540032, 114557000, 1034315998, 
24200, 7379216, 41934482, 4357599552, 55820091938, 
115934, 102144036, 694861522, 169094614280, 3044533460992, 
555458, 1418981392, 11527389122, 6640849944580, 166779871224962, 
2661344, 19742287908, 191304901282, 262671237617216, 9152970837103102, 
12751250, 274848860432, 3175220160032, 10433179552323108, 502711247500143362, 

2021年1月17日日曜日

210117

Python


Number of spanning trees of odd Aztec diamond OD_n

Graphillion を使って計算してみた。

from graphillion import GraphSet

def make_OD_nk(n, k):
    n += 1
    k += 1
    grids = []
    s = k * n
    for i in range(1, k * n, k):
        for j in range(1, k):
            a, b = i + j - 1, i + j
            c = s + a
            if i > 1:
                grids.extend([(c - k, a), (c - k, b)])
            if i < k * (n - 1) + 1:
                grids.extend([(c, a), (c, b)])
    return grids

def A340425(n, k):
    universe = make_OD_nk(n, k)
    GraphSet.set_universe(universe)
    spanning_trees = GraphSet.trees(is_spanning=True)
    return spanning_trees.len()

print([A340425(n, n) for n in range(1, 6)])

出力結果
[1, 192, 4542720, 12116689944576, 3544863978266468352000]