
Сообщение от
Вольд
Все ГСЧ так работают. Вся разница в длине цикла.
Вот например к чему приводил плохой ГСЧ в Google Chrome: https://medium.com/@betable/tifu-by-...m-f1c308c4fd9d
Кто-нибудь пробовал реализовывать xorshift128plus?
У xorshift128plus период 2128-1, и этого должно хватить с запасом.
К слову, xorshift128plus используется в большинстве браузеров (в Chrome, Safari, FireFox точно) для Math.random().
Собственно, код:
Код:
/* The state must be seeded so that it is not everywhere zero. */
uint64_t s[2];
uint64_t xorshift128plus(void) {
uint64_t x = s[0];
uint64_t const y = s[1];
s[0] = y;
x ^= x << 23; // a
s[1] = x ^ y ^ (x >> 17) ^ (y >> 26); // b, c
return s[1] + y;
}