tama wrote: > On Mon, 20 Apr 2009 16:09:09 +0900, Walter Bright > <[email protected]> wrote: > >> >> This is a major revision to Phobos, including Andrei's revolutionary >> new range support. >> >> http://www.digitalmars.com/d/2.0/changelog.html >> http://ftp.digitalmars.com/dmd.2.029.zip > > Range is so cool! > > Though... > I tried following code: > > void main() > { > writeln("Case1"); > { > Mt19937 gen = Mt19937(0); > writeln(gen.front); > gen.popFront; > writeln(gen.front); > } > writeln("---"); > { > Mt19937 gen = Mt19937(0); > advance(gen, 1); // skip 1 element > writeln(gen.front); > gen.popFront; > writeln(gen.front); > } > writeln("\nCase2"); > { > Mt19937 gen; > writeln(gen.front); > gen.popFront; > writeln(gen.front); > } > writeln("---"); > { > Mt19937 gen; > advance(gen, 1); // skip 1 element > writeln(gen.front); > gen.popFront; > writeln(gen.front); > } > } > > Result: > > Case1 > 2357136044 (1) > 2546248239 (2) > --- > 2546248239 (2) > 3071714933 (3) > > Case2 > 581869302 (1) > 3890346734 (2) > --- > 581869302 (1)? > 3890346734 (2)? > > I think 'Case1' is correct, but 'Case2' is wrong. > Mt19937's bug? >
If you initialize the Mersenne twister with no seed it will start with seed 5489u. Andrei
