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