Maison > développement back-end > Tutoriel Python > 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
Libérer: 2024-10-28 06:03:32
original
814 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal