Ciao, Il Sab, 18 Febbraio 2017 12:42 am, Pedro Gimeno ha scritto: > Yes. Only seeds up to 2^19937-20028 inclusive are guaranteed to generate > different sequences, though, and with the new seeding function, only up to > 2^19936-1. I don't think it'd be a big deal to cut it out to 2^19936-1
I'm looking more carefully at the code... and I doubt we are really giving different sequences for all seeding-values up to 2^19937-20028. We mangle the given value to obtain the seed with: (value^e) mod (2^n-k) for e=1074888996, n=19937 and k=20023, right? Problem: e is even! value and (2^n-k-value) will be mangled to the same seed... Moreover, gcd(e, 2^n-k-1) = 12. I expect to find dozens of values giving the same result after the exponentiation. So that we currently have only 2^19937-20028 different sequences that can be selected by a seed. If we can obtain 2^19936-1, it's not a cut, it's an improvement! Of course we can change the exponent, with a new one, co-prime with the Euler phi of 2^n-k... but this is an incompatible change. I'm leaning more and more towards the complete change of the seeding function. > now. Seeds bigger would generate different results, potentially breaking > compatibility if these are used, but I don't think there's a big chance of > that happening. If we change the function, the sequences will be changed for any value, right? It's not only an issue affecting "bigger seeds"... Best regards, m -- http://bodrato.it/papers/ _______________________________________________ gmp-bugs mailing list gmp-bugs@gmplib.org https://gmplib.org/mailman/listinfo/gmp-bugs