2017-02-22 3 views
0

large integral의 정수를 계산하고 싶습니다.Python : 100 개의 함수와 통합 변수에 걸쳐 통합

저는 이것을 파이썬으로 구현하는 데 어려움을 겪고 있습니다. 이것을 달성하기위한 프로그래밍 방식이 있습니까? 여러 루프에 대해이 작업을 시도했지만 오류 SystemError: too many statically nested blocks에 붙어 있습니다. 물론

fs = {} 
for i in range(100): 
    fs[i] = lamda x: x*i 

for x1 in np.arange(0,1,.01): 
    for x2 in np.arange(0,1,.01): 
     .... 
      for x100 in np.arange(0,1,.01): 
      for i in range(100): 
       exec("summ+= fs[i](x%i"%i) 
+0

라인 길이 제한? – miradulo

+0

한계가 없습니까? 그게 pep8인가요? – kilojoules

+0

그건 그냥 PEP8입니다. 예, Pycharm 같은 곳입니까? – miradulo

답변

0

그것이 느리다 : 은 "전 범위 (100)는"(1) 부분 (100)에 도달 * 100 * 100 * ... * 100 (100 '* 100의) = 100^100; 사람들은 가 어쨌든 나는 이런 식으로 할 것 ... N^2가 나쁜 말 :

- Put 100 values initialized with 0 into a list. 
- for i = 0 to 100^100: 
    - go through the list and use the k-th value as the parameter for the k-th function. do the summing thing 
    - Add 0.1 to the n-th value in the list; 
    if this value is now == 1; set it to 0 and go to the (n+1)-th value and repeat this procedure until you reach the end of the list or one value is < 1. 
    Start with the first value in the list. 
now you have your sum. 
+1

이것은 문제가되지 않습니다. 하나 이상의 for 루프가 없습니다. 내 의사 코드를 보면 문제가 해결됩니다. 그러나 실제로, 이것을 실행하는 것을 귀찮게해서는 안됩니다. 누군가 (그리고 나) 의견으로는 알고리즘이 곧 끝나지 않을 것이라고 말했다. 방정식을 보상하려고 노력해야합니다. – DaOnlyOwner

+0

자세한 내용을 알고 싶습니다. 귀하의 답변을 이해할 수 없습니다. 무작위 샘플링을 사용하여 정수를 근사화했습니다. – kilojoules