Моя проблема очень проста. Я хотел бы вычислить следующую сумму.Как вычислить дорогостоящую сумму высокой точности в python?
from __future__ import division
from scipy.misc import comb
import math
for n in xrange(2,1000,10):
m = 2.2*n/math.log(n)
print sum(sum(comb(n,a) * comb(n-a,b) * (comb(a+b,a)*2**(-a-b))**m
for b in xrange(n+1))
for a in xrange(1,n+1))
Однако питон дает RuntimeWarning: overflow encountered in multiply
и nan
как выход, и это также очень и очень медленно.
Есть ли разумный способ сделать это?
Для начала избавьтесь от '[]'; вам не нужны эти промежуточные списки. –
гребенка (n, a) означает n!/(A!) * (N-a)! – emcas88
Вы считали 'cython'? – mbatchkarov