ホームページ  >  記事  >  バックエンド開発  >  Python で整数の平方根を求める方法: どの方法が最適ですか?

Python で整数の平方根を求める方法: どの方法が最適ですか?

DDD
DDDオリジナル
2024-10-28 06:03:32704ブラウズ

How to Find Integer Square Roots in Python: Which Method is Best?

Python での整数平方根の計算

Python では、正確な整数平方根を見つけるのが難しい場合があります。ただし、このタスクにはいくつかの方法が利用できます。

簡単なアプローチの 1 つは、平方根の推定値を繰り返し改良するニュートン法を使用することです。

<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>

この方法では、最大の整数平方根。それ自体を乗算して入力数値と一致するかどうかを確認することで検証できます。

別の方法は、整数の除算を使用して完全二乗を繰り返しチェックすることです。

<code class="python">def isqrt2(n):
    i = 1
    while i * i <= n:
        i += 1
    return i - 1</code>

このメソッドの構造は単純ですが、大きな整数の場合は一般にニュートン法よりも遅くなります。

最後に、Python バージョン 3.8 以降では、数学モジュールは正確な値を計算する組み込みの isqrt 関数を提供します。整数の平方根を効率的に求めます。

<code class="python">from math import isqrt

x = isqrt(49)  # returns 7</code>

必要な効率と Python のバージョンに基づいて適切な方法を選択することで、さまざまなシナリオで整数の平方根を正確に求めることができます。

以上がPython で整数の平方根を求める方法: どの方法が最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。