122 : 効率的なべき乗計算

n15n^{15}を求めるのに最も単純な方法では 14 回の掛け算が必要である.

n×n××n=n15n × n × \dots × n = n^{15}

しかし、2進法を用いれば6 回の掛け算で計算できる.

n×n=n2n × n = n^2 n2×n2=n4n^2 × n^2 = n^4 n4×n4=n8n^4 × n^4 = n^8 n8×n4=n12n^8 × n^4 = n^{12} n12×n2=n14n^{12} × n^2 = n^{14} n14×n=n15n^{14} × n = n^{15}

ところがたった 5 回の掛け算のみでも計算できる.

n×n=n2n × n = n^2 n2×n=n3n^2 × n = n^3 n3×n3=n6n^3 × n^3 = n^6 n6×n6=n12n^6 × n^6 = n^{12} n12×n3=n15n^{12} × n^3 = n^{15}

m(k)m(k)nkn^kを求めるのに必要最低限な掛け算の回数と定義する. たとえばm(15)=5m(15)=5である.

1k2001 ≤ k ≤ 200に対し、m(k)\sum m(k)を求めよ.

最終更新