Python에서 정수 제곱근 찾기
Python은 숫자의 제곱근을 계산하는 여러 가지 방법을 제공합니다. 그러나 이러한 방법 중 어느 것도 근사치나 예외 없이 정수 제곱근을 직접 반환하지 않습니다.
초기 코드 조각에서 제안된 한 가지 접근 방식은 math.sqrt() 함수를 사용하고 결과를 다음으로 반올림하는 것입니다. 가장 가까운 정수. 그러나 이 접근 방식은 큰 정수의 경우 정확하지 않을 수 있습니다.
더 정확한 방법은 방정식의 근을 찾는 반복 기술인 뉴턴 방법을 사용하는 것입니다. 다음 Python 함수는 정수 제곱근에 대한 Newton의 방법을 구현합니다.
<code class="python">def isqrt(n): x = n y = (x + 1) // 2 while y < x: x = y y = (x + n // x) // 2 return x</code>
이 함수는 두 변수 x와 y를 초기화하고 수렴할 때까지 반복적으로 업데이트합니다. x는 정수 제곱근의 최적 추정치를 나타내고, y는 x 값과 n을 x로 나눈 정수를 모두 통합한 업데이트된 추정치를 나타냅니다. y가 x보다 작아지면 반복이 중지되며, 이는 추가 개선이 필요하지 않음을 나타냅니다.
isqrt()의 반환 값은 해당 제곱이 n을 초과하지 않는 가장 큰 정수입니다. 결과가 정확한 정수 제곱근인지 확인하려면 결과에 그 자체를 곱하고 n과 비교하십시오. 이 함수는 설계상 완벽하지 않은 제곱을 처리하고 예외를 발생시키지 않습니다.
정수 제곱근을 계산하는 다른 여러 알고리즘이 있지만 일반적으로 뉴턴의 방법은 정확성, 속도 및 단순성의 균형을 제공하는 것으로 간주됩니다.
위 내용은 Python에서 숫자의 정수 제곱근을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!