五、迭代法
算法思想:
對于一個問題的求解x,可由給定的一個初值x0,根據某一迭代公式得到一個新的值x1,這個新值x1比初值x0更接近要求的值x;再以新值作為初值,即:x1→x0,重新按原來的方法求x1,重復這一過和直到|x1-x0|<ε(某一給定的精度)。此時可將x1作為問題的解。
例:用迭代法求某個數的平方根。 已知求平方根的迭代公式為:
Private Function Fsqrt( a As single ) AS single
Dim x0 As Single, x1 As Single
x0 =a/2 '迭代初值
x1 = 0.5*(x0 + a/x0)
Do
x0 = x1 '為下一次迭代作準備
x1 = 0.5*(x0 + a/x0)
Loop While Abs(x1 - x0) > 0.00001
Fsqrt=x1
End Function
六、數制轉換
將一個十進制整數m轉換成 →r(2-16)進制字符串。
方法:將m不斷除 r 取余數,直到商為零,以反序得到結果。下面寫出一轉換函數,參數idec為十進制數,ibase為要轉換成數的基(如二進制的基是2,八進制的基是8等),函數輸出結果是字符串。
Private Function TrDec(idec As Integer, ibase As Integer) As String
Dim strDecR$, iDecR%
strDecR = ""
Do While idec <> 0
iDecR = idec Mod ibase
If iDecR >= 10 Then
strDecR = Chr$(65 + iDecR - 10) & strDecR
Else
strDecR = iDecR & strDecR
End If
idec = idec \ ibase
Loop
TrDec = strDecR
End Function
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |