One of n lines in a file: Difference between revisions

Added Wren
m (→‎{{header|Sidef}}: Fix link: Perl 6 --> Raku)
(Added Wren)
Line 2,264:
9. 100081
10. 99895
</pre>
 
=={{header|Wren}}==
{{trans|Kotlin}}
{{libheader|Wren-fmt}}
<lang ecmascript>import "random" for Random
import "/fmt" for Fmt
 
var rand = Random.new()
 
var oneOfN = Fn.new { |n|
var choice = 1
for (i in 2..n) {
if (rand.float() < 1/i) choice = i
}
return choice
}
 
var n = 10
var freqs = List.filled(n, 0)
var reps = 1e6
for (i in 0...reps) {
var num = oneOfN.call(n)
freqs[num-1] = freqs[num-1] + 1
}
for (i in 1..n) Fmt.print("Line $-2d = $,7d", i, freqs[i-1])</lang>
 
{{out}}
Sample run:
<pre>
Line 1 = 99,761
Line 2 = 99,876
Line 3 = 99,935
Line 4 = 100,020
Line 5 = 100,281
Line 6 = 100,329
Line 7 = 99,876
Line 8 = 99,810
Line 9 = 100,033
Line 10 = 100,079
</pre>
 
9,482

edits