ได้ฟังมาจากอ.รวิทัต ก็เลยอยากมาทบทวนซักหน่อยนะครับ
โดยนิยามของมันก็ sqrt(x) = y | y*y = x
ผมจำไม่ได้ว่า ใครเป็นคนคิดขึ้นมานะครับ algorithm ก็มีดังนี้ครับ
1. ตั้งค่าทดสอบมาหนึ่งค่า เช่น 1
2. นำ x มาหารกับค่าทดสอบ
3. หาค่าเฉลี่ยของค่าที่ได้จากข้อ 2 กับ ค่าทดสอบ
4. ทำซ้ำข้อ 2 โดยนำค่าที่ได้จากข้อ 3 เป็นค่าทดสอบของครั้งต่อไป
ค่าที่ได้เมื่อนำมายกกำลังสอง จะลู่เข้าสู่ค่า x เรื่อยๆ ซึ่ง terminal condition ของผมก็คือ เมื่อความต่างของค่าทดสอบและค่าที่ได้จากข้อ 3 ต่างกันน้อยมากๆ
เขียนด้วย python (อีกแล้ว – -” )ก็ได้มาประมาณนี้ครับ
def sqrt(num,testVal):
x = ((float(num) / float(testVal)) + float(testVal)) / 2
if abs(testVal-x) <= 0.0000000000000001 : return x
else : return sqrt(num,x)
2 การตอบรับ so far ↓
kojiro540 // ธันวาคม 26, 2007 ที่ 1:21 pm
แล้วถ้าใช้ sqrt ใน Python เลยไม่ได้หรอครับ
thitipat // มีนาคม 2, 2008 ที่ 7:24 am
import math
print math.sqrt(input(“Num :”))