Maison  >  Article  >  développement back-end  >  Comment trouver des racines carrées entières en Python : quelle méthode est la meilleure ?

Comment trouver des racines carrées entières en Python : quelle méthode est la meilleure ?

DDD
DDDoriginal
2024-10-28 06:03:32710parcourir

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

Calcul de racines carrées entières en Python

En Python, trouver une racine carrée entière exacte peut être un défi. Cependant, plusieurs méthodes sont disponibles pour cette tâche.

Une approche simple consiste à utiliser la méthode de Newton, qui affine de manière itérative son estimation de la racine carrée :

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

Cette méthode calcule avec précision la racine carrée entière la plus grande, qui peut ensuite être vérifiée en la multipliant par elle-même pour vérifier si elle correspond au nombre saisi.

Une méthode alternative consiste à utiliser une division entière pour vérifier de manière itérative les carrés parfaits :

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

Cette méthode a une structure plus simple mais est généralement plus lente que la méthode de Newton pour les grands entiers.

Enfin, pour les versions 3.8 et ultérieures de Python, le module mathématique fournit une fonction isqrt intégrée qui calcule la valeur exacte racine carrée entière de manière efficace.

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

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

En choisissant la méthode appropriée en fonction de l'efficacité souhaitée et de la version Python, vous pouvez trouver avec précision des racines carrées entières dans divers scénarios.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn