用VBS精確計(jì)算2的100次方的代碼
更新時(shí)間:2011年01月21日 23:20:52 作者:
即Grade school multiplication(小學(xué)乘法?)算法的VBS實(shí)現(xiàn)。
既然Python可以計(jì)算2的100次方,那么我就要用VBS實(shí)現(xiàn)。不過這個(gè)效率嘛,計(jì)算2的10000次方Python用了0.009013秒,VBS用了120.9805秒,不是一個(gè)等級的,我就不多說什么了。
直接上代碼:
'Date: 2010/10/27
'Author: Demon
'QQ: 380401911
'E-mail: still.demon@gmail.com
begin = Timer
n = 1
For i = 1 To 100
n = multiple(n, 2)
Next
finish = Timer
WScript.Echo n
WScript.Echo finish - begin
'Grade school multiplication, Algorithm 14.12
'http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf
Function multiple(byVal x, byVal y)
Dim n, t, i, j, z, w()
n = Len(x) - 1
t = Len(y) - 1
ReDim w(n + t + 1)
x = CStr(x) : y = CStr(y)
For i = 0 To UBound(w)
w(i) = "0"
Next
For i = 0 To t
Dim c : c = 0
Dim uv : uv = 0
For j = 0 To n
uv = (w(i+j)-"0") + c + _
(Mid(x,n-j+1,1)-"0") * (Mid(y,t-i+1,1)-"0")
w(i+j) = CStr(uv Mod 10 + "0")
c = uv \ 10
Next
w(i+n+1) = CStr(uv \ 10 + "0")
Next
z = Join(w,"")
z = StrReverse(z)
Do While Left(z,1) = "0"
z = Mid(z,2)
Loop
multiple = z
End Function
原文:http://demon.tw/programming/vbs-long-multiplication.html
直接上代碼:
復(fù)制代碼 代碼如下:
'Date: 2010/10/27
'Author: Demon
'QQ: 380401911
'E-mail: still.demon@gmail.com
begin = Timer
n = 1
For i = 1 To 100
n = multiple(n, 2)
Next
finish = Timer
WScript.Echo n
WScript.Echo finish - begin
'Grade school multiplication, Algorithm 14.12
'http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf
Function multiple(byVal x, byVal y)
Dim n, t, i, j, z, w()
n = Len(x) - 1
t = Len(y) - 1
ReDim w(n + t + 1)
x = CStr(x) : y = CStr(y)
For i = 0 To UBound(w)
w(i) = "0"
Next
For i = 0 To t
Dim c : c = 0
Dim uv : uv = 0
For j = 0 To n
uv = (w(i+j)-"0") + c + _
(Mid(x,n-j+1,1)-"0") * (Mid(y,t-i+1,1)-"0")
w(i+j) = CStr(uv Mod 10 + "0")
c = uv \ 10
Next
w(i+n+1) = CStr(uv \ 10 + "0")
Next
z = Join(w,"")
z = StrReverse(z)
Do While Left(z,1) = "0"
z = Mid(z,2)
Loop
multiple = z
End Function
原文:http://demon.tw/programming/vbs-long-multiplication.html
您可能感興趣的文章:
相關(guān)文章
可自刪除 開啟3389創(chuàng)建用戶粘滯鍵后門的vbs
開啟3389創(chuàng)建用戶粘滯鍵后門,作研究使用,請勿違法。2009-01-01
vbs打開ie兩種方法 在VBScript中啟動(dòng)IE瀏覽器的實(shí)現(xiàn)代碼
用VBS打開網(wǎng)頁,減少IE廣告, 不錯(cuò)的東東,是在網(wǎng)上收集的,你也可以實(shí)現(xiàn)網(wǎng)頁的自動(dòng)登錄等2013-01-01
VBS監(jiān)控CPU的使用率(如占用率一直維持在80%超過30秒則運(yùn)行某程序)
用vbs實(shí)現(xiàn)的監(jiān)控CPU的使用率,VBS監(jiān)控CPU的使用率,如占用率一直維持在80%超過30秒,則運(yùn)行某程序,以保證機(jī)器的正常運(yùn)行2013-04-04
用VBS實(shí)現(xiàn)監(jiān)視進(jìn)程創(chuàng)建與刪除的代碼
微軟腳本中心里的例子,用到了WMI事件,抄下來備查。2011-02-02
VBS教程:VBscript語句-If...Then...Else 語句
If...Then...Else 語句用于計(jì)算條件是否為 True 或 False,并且根據(jù)計(jì)算結(jié)果指定要運(yùn)行的語句。通常,條件是使用比較運(yùn)算符對值或變量進(jìn)行比較的表達(dá)式。If...Then...Else 語句可以按照需要進(jìn)行嵌套2006-11-11
可以得到當(dāng)前系統(tǒng)信息的腳本sysinfo.vbs
可以得到當(dāng)前系統(tǒng)信息的腳本sysinfo.vbs...2007-02-02

