2016年4月3日日曜日

160403(2)

Ruby


Alternating factorial(3)

(n - 1)! - (n - 2)! + (n - 3)! - … mod n が0 や2 の値になるn は少ない
のかもしれない。
今のところ、次のものしかわからない。
3612702! - 3612701! + 3612700! - 3612699! + … ≡ 0 mod 3612703
1108! - 1107! + 1106! - 1105! + … ≡ 2 mod 1109

def af(n, mod)
  a = 0
  f = 1
  (1..n).each{|i|
    f *= i
    f %= mod
    a = f - a
    a %= mod
  }
  a
end

p (1..100).map{|i| af(i - 1, i)}

h = {}
(1..100000).each{|i|
  j = af(i - 1, i)
  h.key?(j) ? h[j] = h[j].push(i) : h[j] = [i]
}
(0..3).each{|i| p [i, h[i]]}

出力結果
[0, 1, 1, 1, 4, 5, 3, 5, 7, 1, 4, 5, 12, 11, 4, 5, 8, 11, 14, 1, 10, 7, 18, 5, 19, 1, 16, 25, 19, 11, 9, 5, 4, 9, 24, 29, 36, 5, 25, 21, 1, 11, 5, 29, 34, 5, 6, 5, 10, 31, 25, 1, 20, 11, 4, 53, 52, 39, 32, 41, 48, 53, 52, 5, 64, 29, 5, 9, 64, 11, 64, 29, 15, 1, 19, 5, 59, 53, 4, 21, 16, 81, 61, 53, 59, 81, 19, 29, 47, 11, 38, 5, 40, 41, 14, 5, 57, 39, 70, 81]
[0, [1]]
[1, [2, 3, 4, 10, 20, 26, 41, 52, 74, 123, 130, 148, 260, 370, 740, 926, 962, 1852, 1924, 4630, 4810, 9260, 9620, 12038, 24076, 34262, 60190, 68524]]
[2, [1109]]
[3, [7, 262, 641, 1966, 2741, 3559, 4487, 19187, 22238, 24913, 45238]]

0 件のコメント:

コメントを投稿

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