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