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)!
(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)]]
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。