Deep BlueVBScriptWMIPHPC语言JavaScriptWindows API路由器Windows函数Python | 用VBS精确计算2的100次方即Grade school multiplication(小学乘法?)算法的VBS实现。既然Python可以计算2的100次方,那么我就要用VBS实现。不过这个效率嘛,计算2的10000次方Python用了0.009013秒,VBS用了120.9805秒,不是一个等级的,我就不多说什么了。 直接上代码: 'Date: 2010/10/27 'Author: Demon 'QQ: 380401911 'E-mail: [email protected] 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 |