>  기사  >  백엔드 개발  >  Python에서 숫자의 정수 제곱근을 찾는 방법은 무엇입니까?

Python에서 숫자의 정수 제곱근을 찾는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-31 13:12:47316검색

How to Find the Integer Square Root of a Number in Python?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.