一般程序都自带平方根算法,比如Math.Sqrt还可以用二分法求解平方根。因为二分法本质是一种逼近算法,通过不断二分逼近,可以得到精确值。

一般程序都自带平方根算法,比如Math.Sqrt
还可以用二分法求解平方根。
Imports System.MathPublic Class Form1Function sqrt1(x As Double) As DoubleDim EPSINON, low, high, mid As DoubleEPSINON = 0.0000000000001 '精度low = 0.0high = xWhile ((high - low) > EPSINON)mid = (lowhigh) / 2If mid * mid = x Then Exit WhileIf (mid * mid > x) Thenhigh = midElselow = midEnd IfEnd WhileReturn midEnd FunctionPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickDim a, b1, b2 As Stringa = CInt(TextBox1.Text)b1 = CStr(Math.Sqrt(a))b2 = CStr(sqrt1(a))MsgBox(b1vbCrLfb2)End Sub
就是定义一个最小值0和最大值number,把一个数取一个中间值(0 number)/2,然后平方,如果平方大于该数值,就把中间值赋给最大值,否者就把中间值赋给最小值,一直循环,直到取到想要的精度为止
注意:
EPSINON = 0.0000000000001 '精度
通过调整精度,可以得到近似值。
因为二分法本质是一种逼近算法,通过不断二分逼近,可以得到精确值。
