Add README.md
This commit is contained in:
parent
0c2b593cac
commit
be5f03a64e
35
README.md
Normal file
35
README.md
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# ranlin — Choose a random line from a text file
|
||||||
|
|
||||||
|
Implemented using an elegant algorithm, originally stolen from the "Perl
|
||||||
|
Cookbook", which does not have more than a single text line in memory at any
|
||||||
|
time.
|
||||||
|
|
||||||
|
The trivial way to pick a random line would of course be to read all lines into
|
||||||
|
an array, and then pick a random index for that array.
|
||||||
|
|
||||||
|
The algorithm used here, however, will generate a random number between zero and
|
||||||
|
the number of lines read, every time a line is read. Then, if that number is
|
||||||
|
greater than one, the line will be taken as the resulting line, for that moment.
|
||||||
|
|
||||||
|
Of course, when more lines are read after that, any line can be picked in that
|
||||||
|
fashion, _where the chance the line is picked is still equal for evey line_.
|
||||||
|
|
||||||
|
Brilliant.
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
`make`
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
`sudo make install`
|
||||||
|
|
||||||
|
or, on OpenBSD:
|
||||||
|
|
||||||
|
`doas gmake install`
|
||||||
|
|
||||||
|
## Run
|
||||||
|
|
||||||
|
`ranlin <textfile>`
|
||||||
|
|
||||||
|
Output will be some random line from the file.
|
Loading…
x
Reference in New Issue
Block a user