일부 수학 표현을 어딘가에 파이썬으로 대기열에 넣으려고합니다. 그리고 나서 결국 합계를 표시하고 싶습니다. 가능무언가의 큐 합계가 끝 부분에 표시됩니다.
for i in range(0, n-1): sum_queue(pow(-1,i)/((2*i)+1))
print(sum(0)) #or sum("latest")
인가 :
내가 이런 일을하려고?
일부 수학 표현을 어딘가에 파이썬으로 대기열에 넣으려고합니다. 그리고 나서 결국 합계를 표시하고 싶습니다. 가능무언가의 큐 합계가 끝 부분에 표시됩니다.
for i in range(0, n-1): sum_queue(pow(-1,i)/((2*i)+1))
print(sum(0)) #or sum("latest")
인가 :
내가 이런 일을하려고?
Python 2.7.5+ (default, Sep 19 2013, 13:48:49)
>>> queue = []
>>> n = 10
>>> for i in range(0, n-1):
... queue.append(pow(-1,i)/((2*i)+1))
...
>>> queue
[1, -1, 0, -1, 0, -1, 0, -1, 0]
>>> sum(queue)
-3
>>> queue = [pow(-1,i)/((2*i)+1) for i in range(0, n-1)]
>>> sum(queue)
-3
>>>
임시 목록이 필요하지 않은 경우, 당신은 발전기 사용할 수 있습니다
>>> sum(pow(-1,i)/((2*i)+1) for i in range(0, n-1))
-3
짧아 질 수 없습니까? –
대기열을 요약하지 않고 카운터를 가질 수 있습니다. – Alejandro
@AlejandroLucena 카운터에 관한 해결책을 게시 할 수 있습니까? –
@ warwaruk의 대답에 내 의견에 따라,이는 카운터를 사용하는 단축 할 수있다. 큐를 사용하는 목적을 무효화하더라도 여기서는 유일한 조작 만 값을 합산하므로 큐가 반드시 필요한 것은 아닙니다.
당신이append()
n = 10;
total = 0;
for i in range(0,n-1):
total += (pow(-1,i)/((2*i)+1));
print(total);
을 다음 대신 다음 sum()
을 큐에 값을 추가하고 모든 값에 연산의 모든 유형을 수행 할 거라면
기술적으로, 큐는 필요하지 않을 것입니다 이것은 동일한 for 루프 내에서 모두 함께 수행합니다.
점근 분석을 살펴 보려면 둘 다 O (n)이지만이 코드는 더 짧으며 함수 호출과 다른 O (n) 연산을 절약 할 수 있습니다.
는 희망이 귀하의 질문 :
그냥 명확하게하기 위해 응답, 큐 바로, 그냥 수학 표현식을 들고? – Alejandro
무엇이'sum ("latest")'입니까? 묻는 질문이 명확하지 않습니다. –