Comment trouver la racine carrée entière d'un nombre en Python ?

Barbara Streisand
Libérer: 2024-10-31 13:12:47
original
395 Les gens l'ont consulté

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

Trouver des racines carrées entières en Python

Python propose plusieurs façons de calculer la racine carrée d'un nombre. Cependant, aucune de ces méthodes ne renvoie directement une racine carrée entière sans approximations ni exceptions.

Une approche, comme suggéré dans l'extrait de code initial, consiste à utiliser la fonction math.sqrt() et à arrondir le résultat à la valeur entier le plus proche. Cependant, cette approche peut ne pas être exacte pour les grands entiers.

Une méthode plus précise consiste à utiliser la méthode de Newton, qui est une technique itérative pour trouver les racines des équations. La fonction Python suivante implémente la méthode de Newton pour les racines carrées entières :

<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 fonction initialise deux variables, x et y, et les met à jour de manière itérative jusqu'à convergence. x représente la meilleure estimation de la racine carrée entière, tandis que y est une estimation mise à jour qui intègre à la fois la valeur de x et la division entière de n par x. L'itération s'arrête lorsque y devient inférieur à x, indiquant qu'un raffinement supplémentaire n'est pas nécessaire.

La valeur renvoyée par isqrt() est le plus grand entier pour lequel son carré ne dépasse pas n. Pour vérifier si le résultat est une racine carrée entière exacte, multipliez le résultat par lui-même et comparez-le à n. Notez que cette fonction gère les carrés non parfaits par conception, ne soulevant aucune exception.

Bien que plusieurs autres algorithmes existent pour calculer les racines carrées entières, la méthode de Newton est généralement considérée comme offrant un équilibre entre précision, rapidité et simplicité.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal