当前位置 博文首页 > 用VBS精确计算2的100次方的代码

    用VBS精确计算2的100次方的代码

    作者:admin 时间:2021-02-13 15:05

    既然Python可以计算2的100次方,那么我就要用VBS实现。不过这个效率嘛,计算2的10000次方Python用了0.009013秒,VBS用了120.9805秒,不是一个等级的,我就不多说什么了。

    直接上代码:
    复制代码 代码如下:

    '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 js
    下一篇:没有了