Trying to understand RandomSample struct in std.random
Joseph Rushton Wakeling
joseph.wakeling at webdrake.net
Thu Apr 12 11:30:47 PDT 2012
Hello all,
I'm trying to understand the internal operations of the RandomSample struct in
std.random.
What gets output at the end is clearly an array containing a subset of the
original input. But I can't understand how this is constructed.
The constructor sets various initial values and then calls a function prime()
[looks like an implementation of Knuth's Algorithm S] which returns when the
current _index value is selected. Otherwise, it moves along to the next index
value.
What I don't understand is where the selected values are stored or how they come
to be available.
I also don't understand the corresponding randomSample functions where a
specified random number generator is passed; how it can work to set ret.gen =
gen _after_ the RandomSample struct has been initialized.
Can anyone help me to understand how this struct works?
Thanks & best wishes,
-- Joe
More information about the Digitalmars-d-learn
mailing list