

Racket intro projects: start hacking on and with Racket - p4bl0
https://github.com/plt/racket/wiki/Intro-Projects

======
bhickey
I'd like to get a second opinion on Racket's random number generator.
Currently it's using one of L'Ecuyer's generators -- I _think_ it's a 192-bit
multiple recursive generator (MRG), nothing odd there. Seeding is really
strange though. It takes 32-bit seed, splits it in half and uses it to seed
identical 16-bit linear congruential generator (LCG). Sequential outputs from
the first LCG are used to seed the MRG, and the outputs from the second LCG
are mixed with the MRG state.

At best this method strikes me as unprincipled and limits the generator to no
more than 2^32 initial states and potentially far fewer. Thoughts?

~~~
samth
Are you referring to the implementation of `random' from `racket/base'
(implemented here:
[https://github.com/plt/racket/blob/master/src/racket/src/ran...](https://github.com/plt/racket/blob/master/src/racket/src/random.inc)
) or the implementation in `srfi/27' (here:
[https://github.com/plt/racket/blob/master/collects/srfi/27/r...](https://github.com/plt/racket/blob/master/collects/srfi/27/random-
bits.rkt) )?

~~~
bhickey
The implementation in racket/base.

------
mechanical_fish
More projects should have pages like this one.

~~~
timsally
Agreed. Something I've found interesting is that such pages are a tangential
benefit for any project that has participated in Google Summer of Code, as
compiling project ideas is one of the first steps in participating. Although
sometimes projects to err and fail to include "entry level" ideas. For
reference:

FreeBSD: <http://wiki.freebsd.org/IdeasPage>

gcc: <http://gcc.gnu.org/wiki/SummerOfCode>

git: <https://git.wiki.kernel.org/index.php/SoC2011Ideas>

