Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,49 @@
|
|||
_nmax = 20
|
||||
_times = 1000000
|
||||
|
||||
local fn Average( n as long, times as long ) as double
|
||||
long i, x
|
||||
double b, c = 0
|
||||
|
||||
for i = 0 to times
|
||||
x = 1 : b = 0
|
||||
while ( b and x ) == 0
|
||||
c++
|
||||
b = b || x
|
||||
x = 1 << ( rnd(n) - 1 )
|
||||
wend
|
||||
next
|
||||
end fn = c / times
|
||||
|
||||
local fn Analyltic( n as long ) as double
|
||||
double nn = (double)n
|
||||
double term = 1.0
|
||||
double sum = 1.0
|
||||
long i
|
||||
|
||||
for i = nn - 1 to i >= 1 step -1
|
||||
term = term * i / nn
|
||||
sum = sum + term
|
||||
next
|
||||
end fn = sum
|
||||
|
||||
local fn DoIt
|
||||
long n
|
||||
double average, theory, difference
|
||||
|
||||
window 1
|
||||
printf @"\nSamples tested: %ld\n", _times
|
||||
print " N Average Analytical (error)"
|
||||
print "=== ========= ============ ========="
|
||||
for n = 1 to _nmax
|
||||
average = fn Average( n, _times )
|
||||
theory = fn Analyltic( n )
|
||||
difference = ( average / theory - 1) * 100
|
||||
printf @"%3d %9.4f %9.4f %10.4f%%", n, average, theory, difference
|
||||
next
|
||||
end fn
|
||||
|
||||
randomize
|
||||
fn DoIt
|
||||
|
||||
HandleEvents
|
||||
Loading…
Add table
Add a link
Reference in a new issue