Python 3에서 Quadrillion in Range(Quadrillion 1)가 왜 빠른가요?
질문:
Python 3의 range() 함수는 다음을 생성하는 생성기와 유사한 객체입니다. 수요에 따른 가치. 이를 감안할 때 범위(1조 1)에서 1000조 값을 생성해야 하므로 시간이 많이 걸릴 것으로 예상할 수 있습니다. 그런데 이 작업은 놀라울 정도로 빠릅니다. 왜 그렇습니까?
답변:
Python 3의 range() 객체는 해당 요소를 즉시 생성하지 않는 스마트 시퀀스입니다. 시작, 중지 및 단계 값만 보유하고 반복 중에 요청 시 다음 정수를 계산합니다.
결정적으로 range()는 contains 후크를 구현합니다. 숫자가 범위 내에 속합니다. 이 계산은 (거의) 일정 시간 연산이므로 개체는 범위 내 가능한 모든 값을 검색할 필요가 없습니다.
선형 검색이 발생하는 범위 내 모든 값 목록과 달리 범위 ()는 O(log N) 시간으로 소속을 계산합니다. 여기서 N은 범위의 요소 수입니다. 이러한 최적화는 Python 정수의 무한한 특성과 최적화된 C 코드의 효율적인 처리 덕분에 가능해졌습니다.
위 내용은 Python 3에서 `1015 in range(1015 1)`가 왜 이렇게 빠른가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!