为什么在util类中有48位种子?

Fak*_*een 9 java random math lcg

为什么这个类在其线性同余公式中使用48位种子?我本来期望32或64 ......

我知道当要求32位值时它需要更高阶的位.但为什么只有16个额外的位?这是一个"随机"的选择吗?

Por*_*lus 4

您需要比输出位更多的状态位,因为 LCG 的本质是状态的低位位根本不是很随机。因此,如果您想要 32 位输出,则需要超过 32 位的状态。

为什么使用 48 而不是 64?因为 48 个就足够了,而且您是在几十年前设计的,所以有充分的理由希望避免使用超出绝对必要的资源。