RosettaCodeData/Task/Average-loop-length/EasyLang/average-loop-length.easy
2026-04-30 12:34:36 -04:00

37 lines
642 B
Text

fastfunc average n reps .
len f[] n
len seen[] n
for r to reps
for i = 1 to n
f[i] = random 1 n
seen[i] = 0
.
x = 1
while seen[x] = 0
seen[x] = 1
x = f[x]
count += 1
.
.
return count / reps
.
fastfunc analytical n .
s = 1
t = 1
for i = n - 1 downto 1
t = t * i / n
s += t
.
return s
.
print " N average analytical (error)"
print "=== ======= ========== ======="
for n to 20
avg = average n 1e6
ana = analytical n
err = (avg - ana) / ana * 100
numfmt 2 0
write n
numfmt 9 4
print avg & ana & err & "%"
.