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) / 2
print(new_estimate)
# Base Case: Comparing our estimate with built-in functions value
if new_estimate == math.sqrt(num):
return True
else:
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:
5.5
5.477272727272727
5.4772255752546215
5.477225575051661
Hasil terakhir adalah perhitungan paling akurat dari akar kuadrat angka. Ini adalah nilai yang sama dengan fungsi math.sqrt () bawaan.