まずは,SymPy の summation() でやってみる。
using SymPy
@syms n, k
eq = summation(n^2, (n, 1, k)) |> factor
string(eq) # 二乗の和の公式
"k*(k + 1)*(2*k + 1)/6"
eq(k => 3)
14
eq(k => 3000000000000000000)
9000000000000000004500000000000000000500000000000000000
ここまで SymPy
これから Base Julia
f(k) = big(k) * (k + 1) * (2k + 1) // 6 # Base Julia での関数定義
f(3)
14//1
f(3000000000000000000)
9000000000000000004500000000000000000500000000000000000//1
big() と // で巨大整数に対応
※コメント投稿者のブログIDはブログ作成者のみに通知されます