Упрощенный (то есть без параллелизма) Random.next (int биты)
выглядит как
protected int next(int bits) {
seed = (seed * multiplier + addend) & mask;
return (int) (seed >>> (48 - bits));
}
, где используется маскирование для уменьшения начальное значение до 48 бит. Почему это лучше, чем просто
protected int next(int bits) {
seed = seed * multiplier + addend;
return (int) (seed >>> (64 - bits));
}
? Я довольно много читал о случайных числах, но не вижу для этого никаких причин.