Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
48
Task/Average-loop-length/VBScript/average-loop-length.vb
Normal file
48
Task/Average-loop-length/VBScript/average-loop-length.vb
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
Const MAX = 20
|
||||
Const ITER = 100000
|
||||
|
||||
Function expected(n)
|
||||
Dim sum
|
||||
ni=n
|
||||
For i = 1 To n
|
||||
sum = sum + fact(n) / ni / fact(n-i)
|
||||
ni=ni*n
|
||||
Next
|
||||
expected = sum
|
||||
End Function
|
||||
|
||||
Function test(n )
|
||||
Dim coun,x,bits
|
||||
For i = 1 To ITER
|
||||
x = 1
|
||||
bits = 0
|
||||
Do While Not bits And x
|
||||
count = count + 1
|
||||
bits = bits Or x
|
||||
x =shift(Int(n * Rnd()))
|
||||
Loop
|
||||
Next
|
||||
test = count / ITER
|
||||
End Function
|
||||
|
||||
'VBScript formats numbers but does'nt align them!
|
||||
function rf(v,n,s) rf=right(string(n,s)& v,n):end function
|
||||
|
||||
'some precalculations to speed things up...
|
||||
dim fact(20),shift(20)
|
||||
fact(0)=1:shift(0)=1
|
||||
for i=1 to 20
|
||||
fact(i)=i*fact(i-1)
|
||||
shift(i)=2*shift(i-1)
|
||||
next
|
||||
|
||||
Dim n
|
||||
Wscript.echo "For " & ITER &" iterations"
|
||||
Wscript.Echo " n avg. exp. (error%)"
|
||||
Wscript.Echo "== ====== ====== =========="
|
||||
For n = 1 To MAX
|
||||
av = test(n)
|
||||
ex = expected(n)
|
||||
Wscript.Echo rf(n,2," ")& " "& rf(formatnumber(av, 4),7," ") & " "& _
|
||||
rf(formatnumber(ex,4),6," ")& " ("& rf(Formatpercent(1 - av / ex,4),8," ") & ")"
|
||||
Next
|
||||
Loading…
Add table
Add a link
Reference in a new issue