Mai mult
Cum pot calcula rădăcina pătrată în Python?
De ce Python da "prost" răspuns?
x = 16
sqrt = x**(.5)
returns 4
sqrt = x**(1/2)
returns 1
Da, știu, pentru import mathși de a folosi
sqrt`. Dar eu'm în căutarea pentru un răspuns la cele de mai sus.
122
9
sqrt=x**(1/2)
este de a face împărțirii întregi.1/2 == 0
.Deci're de calcul x(1/2) în primă instanță, x(0) în cel de-al doilea.
Deci'nu s-a înșelat, l's răspunsul corect la o întrebare diferită.
Trebuie să scrie:
sqrt = x**(1/2.0)
, altfel un întreg diviziune este realizată și expresia1/2
a se întoarce0
.Acest comportament este "normale" în Python 2.x, întrucât în Python 3.x
1/2
se evaluează la0.5
. Dacă doriți Python 2.x cod să se comporte ca 3.x w.r.t. divizia scriedin __viitoarele__ import divizia
- apoi1/2
va evalua la0.5 și pentru compatibilitate,
1//2se va evalua la
0`.Și pentru înregistrare, modul preferat de a calcula rădăcina pătrată este aceasta:
Este un banal plus față de răspunsul lanț. Cu toate acestea, deoarece Subiectul este foarte frecvente, google a lovit, acesta merită să fie adăugat, cred.
/
efectuează un număr întreg de divizie în Python 2:Dacă unul dintre numere este un float, funcționează cum era de așteptat:
Ce-ai're văzându-este număr întreg divizie. Pentru a obține în virgulă mobilă divizia implicit,
Sau, ai putea converti 1 sau 2 de 1/2 într-o valoare în virgulă mobilă.
Acest lucru ar putea fi un pic cam tarziu pentru raspuns, dar cel mai simplu și precis pentru a calcula rădăcina pătrată este newton's metoda.
Aveți un număr pe care doriți pentru a calcula rădăcina pătrată
(num) și ai ghici sale square root
(estimare)`. Estimarea poate fi orice număr mai mare decât 0, dar un număr care are sens scurtează apel recursiv adâncime în mod semnificativ.Această linie se calculează o estimare mai exactă a celor 2 parametri. Puteți trece new_estimate valoare pentru funcția de calcul si un alt new_estimate care este mai precisă decât cea anterioară sau puteți face o funcție recursivă definiție de genul asta.
De exemplu, avem nevoie pentru a găsi 30's de rădăcină pătrată. Știm că rezultatul este între 5 și 6.
numărul este de 30, iar estimarea este de 5. Rezultatul de la fiecare apelurile recursive sunt:
Ultimul rezultat este cel mai precis calcul a rădăcinii pătrate a numărului. Este aceeași valoare ca built-in funcția de matematica.sqrt().
Poate un simplu mod de a aminti: adauga un punct după numărător (sau la numitor)
Sper menționate mai jos codul va răspunde la întrebarea dumneavoastră.
Puteți utiliza NumPy pentru a calcula rădăcina pătrată de tablouri: