나는 Project Euler에서 작업하고 있는데, 요점은 그렇다. 나는 피보나치 시퀀스를 출력하기위한 빠른 코드를 작성 중이다. 실제로 프로젝트 eueler 방정식에 대해 서로 다른 코드를 가지고 있지만, 본질적으로 내가 사용하고있는 알고리즘이 한동안 나를 erking했다왜이 코드는 'x, y = y, x + y 형식'대신 'x = y; y = x + y '?
x = 1
y = 0
while x < 4000000:
print x
x = y
y = x + y
,이 일을해야합니다. 그런 다음 조금 연구를하고 사실상 동일한 코드를 찾았지만 형식이 조금 다릅니다. 그리고 효과가있었습니다! 유일한 차이점은 x 및 y 지정을 쉼표로 구분하여 한 줄에 넣는 것입니다. 그래서 그것을 시도 :
x , y = 1 , 0
while x < 4000000:
print x
x,y = y, x + y
분명히 말했듯이, 그것은 효과가있다. 이것은 두 가지 사이의 차이가 무엇인지 알 수 없기 때문에 나를 괴롭 히고있다. 출력이 다른 이유를 이해할 수 없습니다. 출력이 다른 이유는 무엇입니까?
나는 생각했다을 가정 해 봅시다 똑같은, 마지막 줄을 y = 0 + 0으로 평가할 것을 의미합니다. 나는 당신이 원래 버전의 마지막 줄을 작업 버전의 마지막 줄로 바꾸면 두 버전이 모두 w라고 생각합니다. ould는 예상대로 작동합니다. –