"Jadi itu tidak salah, itu jawaban yang tepat untuk pertanyaan yang berbeda" - love it! - pikir saya mungkin menantang diri saya untuk menggunakan frasa ini lebih sering!
Thomas Kimber
6
di Python 3.6 Anda mendapatkan jawaban yang benar untuk pertanyaan yang pertama kali Anda tanyakan.
vwvan
2
Metode kedua dapat dihitung sebagai:sqrt = x**(float(1)/2)
VM_AI
117
Anda harus menulis sqrt = x**(1/2.0):, jika tidak, divisi integer dilakukan dan ekspresi 1/2kembali 0.
Perilaku ini "normal" di Python 2.x, sedangkan di Python 3.x 1/2dievaluasi menjadi 0.5. Jika Anda ingin kode Python 2.x Anda berperilaku seperti 3.x wrt division write from __future__ import division- maka 1/2akan mengevaluasi ke 0.5dan untuk kompatibilitas mundur, 1//2akan dievaluasi 0.
Sebagai catatan, cara yang lebih disukai untuk menghitung akar kuadrat adalah ini:
Ini merupakan tambahan yang sepele pada rantai jawaban. Namun karena Subjek adalah hit google yang sangat umum, ini pantas untuk ditambahkan, saya percaya.
Ini mungkin sedikit terlambat untuk dijawab tetapi cara paling sederhana dan akurat untuk menghitung akar kuadrat adalah metode newton.
Anda memiliki angka yang ingin Anda hitung akar kuadratnya (num)dan Anda dapat menebak akar kuadratnya (estimate). Perkiraan bisa berupa angka yang lebih besar dari 0, tetapi angka yang masuk akal memperpendek kedalaman panggilan rekursif secara signifikan.
new_estimate =(estimate + num / estimate)/2
Baris ini menghitung perkiraan yang lebih akurat dengan 2 parameter tersebut. Anda bisa meneruskan nilai new_estimate ke fungsi dan menghitung new_estimate lain yang lebih akurat daripada yang sebelumnya atau Anda bisa membuat definisi fungsi rekursif seperti ini.
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)
Sebagai contoh, kita perlu mencari akar kuadrat 30-an. Kita tahu bahwa hasilnya adalah antara 5 dan 6.
newtons_method(30,5)
nomor adalah 30 dan perkiraan adalah 5. Hasil dari setiap panggilan rekursif adalah:
Ini adalah cara yang lebih alami untuk melakukan akar kuadrat, tetapi bagaimana cara menjawab pertanyaan (diakui memang menjawab pertanyaan dalam judul, tetapi bukan pertanyaan aktual dalam tubuh (ya, itu adalah judul yang buruk))?
Peter Mortensen
-1
Saya harap kode yang disebutkan di bawah ini akan menjawab pertanyaan Anda.
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
dan kemudianx = math.sqrt(25)
yang akan menetapkan nilai5.0
ke x.Jawaban:
sqrt=x**(1/2)
sedang melakukan pembagian integer.1/2 == 0
.Jadi Anda menghitung x (1/2) pada contoh pertama, x (0) pada detik.
Jadi itu tidak salah, itu jawaban yang tepat untuk pertanyaan yang berbeda.
sumber
sqrt = x**(float(1)/2)
Anda harus menulis
sqrt = x**(1/2.0)
:, jika tidak, divisi integer dilakukan dan ekspresi1/2
kembali0
.Perilaku ini "normal" di Python 2.x, sedangkan di Python 3.x
1/2
dievaluasi menjadi0.5
. Jika Anda ingin kode Python 2.x Anda berperilaku seperti 3.x wrt division writefrom __future__ import division
- maka1/2
akan mengevaluasi ke0.5
dan untuk kompatibilitas mundur,1//2
akan dievaluasi0
.Sebagai catatan, cara yang lebih disukai untuk menghitung akar kuadrat adalah ini:
sumber
Ini merupakan tambahan yang sepele pada rantai jawaban. Namun karena Subjek adalah hit google yang sangat umum, ini pantas untuk ditambahkan, saya percaya.
sumber
/
melakukan pembagian integer di Python 2:Jika salah satu angka adalah pelampung, ia berfungsi seperti yang diharapkan:
sumber
Apa yang Anda lihat adalah pembagian bilangan bulat. Untuk mendapatkan pembagian floating point secara default,
Atau, Anda bisa mengubah 1 atau 2 dari 1/2 menjadi nilai floating point.
sumber
Ini mungkin sedikit terlambat untuk dijawab tetapi cara paling sederhana dan akurat untuk menghitung akar kuadrat adalah metode newton.
Anda memiliki angka yang ingin Anda hitung akar kuadratnya
(num)
dan Anda dapat menebak akar kuadratnya(estimate)
. Perkiraan bisa berupa angka yang lebih besar dari 0, tetapi angka yang masuk akal memperpendek kedalaman panggilan rekursif secara signifikan.Baris ini menghitung perkiraan yang lebih akurat dengan 2 parameter tersebut. Anda bisa meneruskan nilai new_estimate ke fungsi dan menghitung new_estimate lain yang lebih akurat daripada yang sebelumnya atau Anda bisa membuat definisi fungsi rekursif seperti ini.
Sebagai contoh, kita perlu mencari akar kuadrat 30-an. Kita tahu bahwa hasilnya adalah antara 5 dan 6.
nomor adalah 30 dan perkiraan adalah 5. Hasil dari setiap panggilan rekursif adalah:
Hasil terakhir adalah perhitungan paling akurat dari akar kuadrat angka. Ini adalah nilai yang sama dengan fungsi math.sqrt () bawaan.
sumber
Mungkin cara mudah untuk mengingat: tambahkan titik setelah pembilang (atau penyebut)
sumber
Anda dapat menggunakan NumPy untuk menghitung akar kuadrat dari array:
sumber
Saya harap kode yang disebutkan di bawah ini akan menjawab pertanyaan Anda.
sumber