"Donc ce n'est pas faux, c'est la bonne réponse à une question différente" - j'adore! - pense que je pourrais me mettre au défi d'utiliser cette phrase plus souvent!
Thomas Kimber
6
dans Python 3.6, vous obtenez la bonne réponse à la question que vous avez posée en premier.
vwvan
2
La deuxième méthode peut être calculée comme sqrt = x**(float(1)/2)
suit
117
Vous devez écrire sqrt = x**(1/2.0):, sinon une division entière est effectuée et l'expression 1/2retourne 0.
Ce comportement est "normal" en Python 2.x, alors qu'en Python 3.x 1/2vaut 0.5. Si vous voulez que votre code Python 2.x se comporte comme l'écriture de division 3.x wrt from __future__ import division- alors 1/2évaluera 0.5et pour la compatibilité descendante, 1//2évaluera à 0.
Et pour mémoire, la méthode préférée pour calculer une racine carrée est la suivante:
La réponse est peut-être un peu tardive, mais le moyen le plus simple et le plus précis de calculer la racine carrée est la méthode de Newton.
Vous avez un nombre dont vous voulez calculer sa racine carrée (num)et vous avez une estimation de sa racine carrée (estimate). L'estimation peut être n'importe quel nombre supérieur à 0, mais un nombre qui a du sens raccourcit considérablement la profondeur d'appel récursif.
new_estimate =(estimate + num / estimate)/2
Cette ligne calcule une estimation plus précise avec ces 2 paramètres. Vous pouvez passer la valeur new_estimate à la fonction et calculer une autre new_estimate qui est plus précise que la précédente ou vous pouvez créer une définition de fonction récursive comme celle-ci.
def newtons_method(num, estimate):# Computing a new_estimate
new_estimate =(estimate + num / estimate)/2print(new_estimate)# Base Case: Comparing our estimate with built-in functions valueif new_estimate == math.sqrt(num):returnTrueelse:return newtons_method(num, new_estimate)
Par exemple, nous devons trouver la racine carrée de 30. On sait que le résultat est compris entre 5 et 6.
newtons_method(30,5)
le nombre est 30 et l'estimation est 5. Le résultat de chaque appel récursif est:
C'est une façon plus naturelle de faire des racines carrées, mais comment répond-elle à la question (certes, elle répond à la question dans le titre, mais pas à la question réelle dans le corps (oui, c'est un mauvais titre))?
Peter Mortensen le
-1
J'espère que le code mentionné ci-dessous répondra à votre question.
def root(x,a):
y =1/ a
y = float(y)print y
z = x ** y
print z
base = input("Please input the base value:")
power = float(input("Please input the root value:"))
root(base,power)
import math
et ensuitex = math.sqrt(25)
qui attribuera la valeur5.0
à x.Réponses:
sqrt=x**(1/2)
fait une division entière.1/2 == 0
.Vous calculez donc x (1/2) dans la première instance, x (0) dans la seconde.
Ce n'est donc pas faux, c'est la bonne réponse à une question différente.
la source
sqrt = x**(float(1)/2)
Vous devez écrire
sqrt = x**(1/2.0)
:, sinon une division entière est effectuée et l'expression1/2
retourne0
.Ce comportement est "normal" en Python 2.x, alors qu'en Python 3.x
1/2
vaut0.5
. Si vous voulez que votre code Python 2.x se comporte comme l'écriture de division 3.x wrtfrom __future__ import division
- alors1/2
évaluera0.5
et pour la compatibilité descendante,1//2
évaluera à0
.Et pour mémoire, la méthode préférée pour calculer une racine carrée est la suivante:
la source
C'est un ajout trivial à la chaîne de réponses. Cependant, comme le sujet est un hit google très courant, cela mérite d'être ajouté, je crois.
la source
/
effectue une division entière dans Python 2:Si l'un des nombres est un flottant, cela fonctionne comme prévu:
la source
Ce que vous voyez est une division entière. Pour obtenir la division en virgule flottante par défaut,
Ou, vous pouvez convertir 1 ou 2 de 1/2 en une valeur à virgule flottante.
la source
La réponse est peut-être un peu tardive, mais le moyen le plus simple et le plus précis de calculer la racine carrée est la méthode de Newton.
Vous avez un nombre dont vous voulez calculer sa racine carrée
(num)
et vous avez une estimation de sa racine carrée(estimate)
. L'estimation peut être n'importe quel nombre supérieur à 0, mais un nombre qui a du sens raccourcit considérablement la profondeur d'appel récursif.Cette ligne calcule une estimation plus précise avec ces 2 paramètres. Vous pouvez passer la valeur new_estimate à la fonction et calculer une autre new_estimate qui est plus précise que la précédente ou vous pouvez créer une définition de fonction récursive comme celle-ci.
Par exemple, nous devons trouver la racine carrée de 30. On sait que le résultat est compris entre 5 et 6.
le nombre est 30 et l'estimation est 5. Le résultat de chaque appel récursif est:
Le dernier résultat est le calcul le plus précis de la racine carrée du nombre. C'est la même valeur que la fonction intégrée math.sqrt ().
la source
Peut-être un moyen simple de se souvenir: ajoutez un point après le numérateur (ou dénominateur)
la source
Vous pouvez utiliser NumPy pour calculer les racines carrées des tableaux:
la source
J'espère que le code mentionné ci-dessous répondra à votre question.
la source