std.string and ranges
Benji Smith
dlanguage at benjismith.net
Wed Feb 11 20:01:58 PST 2009
bearophile wrote:
> I have taken a look at the docs for dice(), I don't like its name because isn't intuitive at all, but its usage is easy. The usage of the function I have suggested is a bit more higher level.
>
> An possible alternative design for such function is to take in input an already sorted array of the weights (beside the iterable of the items), this may speed up this function a bit (it just needs to call the algorithm for bisect search, I presume).
FWIW, I've implemented this sort of thing before. In my implementation,
it was called ProbabilisticChooser(T), and I could instantiate it either
with a pair of parallel arrays or with a HashMap(T, double).
In my case, I didn't lump it in with my other random-number related
code, because I had a set of other classes implementing the Chooser(T)
interface. Some of them were random and some were deterministic, but
they all provided the same "choose" function on top of a "choice
strategy" implementation.
--benji
More information about the Digitalmars-d
mailing list