는 I는 최종 결과가 숫자하지큰 중간 값 합을 계산하는 방법
두 값이 (1000)까지 범위의 정수를 되와 N ≥ 미터 대해 계산하고자 n보다 훨씬 크지 만 중간 값은 너무 커서 파이썬이 대처할 수 없습니다. 어떻게 이것을 해결할 수 있습니까?
다음과 같이 함수를 정의합니다.
는from scipy.misc import comb
def S(n,m):
return n+m-sum([k**(k - 1)*comb(n, k)*(n - k)**(n + m - k)/n**(n + m - 1) for k in xrange(1,n+1)])
내가 n=m=100
얻을 오류는, 예를 들어, 문제가 scipy의 comb
정의처럼
RuntimeWarning: overflow encountered in multiply
return n+m-sum([k**(k - 1)*comb(n, k)*(n - k)**(n + m - k)/n**(n + m - 1) for k in xrange(1,n+1)])
[...]
OverflowError: long int too large to convert to float
죄송합니다. LaTeX은 SO에서 작동하지 않습니다. (실제로 시도했으면 좋겠지 만.) 정말로 그 질문을 다시 형식화하여 조금 더 읽기 좋습니까? – Makoto
대용량의 파이썬에 너무 큰 정수가 있습니까? 확실합니까? –
파이썬은 임의의 크기의 정수를 처리 할 수 있습니다. 넌 멍청한거야? –