One of n lines in a file: Difference between revisions
Content deleted Content added
added ocaml |
→Tcl: Added implementation |
||
Line 184: | Line 184: | ||
;Sample output: |
;Sample output: |
||
<pre>[99833, 100303, 99902, 100132, 99608, 100117, 99531, 100017, 99795, 100762]</pre> |
<pre>[99833, 100303, 99902, 100132, 99608, 100117, 99531, 100017, 99795, 100762]</pre> |
||
=={{header|Tcl}}== |
|||
<lang tcl>package require Tcl 8.5 |
|||
proc 1ofN {n} { |
|||
for {set line 1} {$line <= $n} {incr line} { |
|||
if {rand() < 1.0/[incr fraction]} { |
|||
set result $line |
|||
} |
|||
} |
|||
return $result |
|||
} |
|||
for {set i 0} {$i < 1000000} {incr i} { |
|||
incr count([1ofN 10]) |
|||
} |
|||
parray count; # Alphabetic order, but convenient</lang> |
|||
Sample output: |
|||
<pre> |
|||
count(1) = 99862 |
|||
count(10) = 100517 |
|||
count(2) = 100545 |
|||
count(3) = 100339 |
|||
count(4) = 99636 |
|||
count(5) = 99920 |
|||
count(6) = 99263 |
|||
count(7) = 100283 |
|||
count(8) = 99871 |
|||
count(9) = 99764 |
|||
</pre> |