Random 由结果确定线性同余发生器的状态

Random 由结果确定线性同余发生器的状态,random,Random,我很好奇,如果给定线性同余发生器的输出,人们会如何确定它的状态 X(n-1) = (aX(n) + c) mod p 由于返回的值是确定性的,并且公式是众所周知的,因此应该可以获得状态的值。做这件事的最佳方法是什么 编辑: 当我发布这篇文章时,我正在工作,这与工作无关,所以我没有花太多时间,应该进一步阐述 假设这用于生成0到1之间的非整数值,但其唯一可见的输出是具有50/50排列的true或false。假设实现也是已知的,那么a、c和p的值是已知的,而不是X 在有限的输出量下,有可能确

我很好奇,如果给定线性同余发生器的输出,人们会如何确定它的状态

    X(n-1) = (aX(n) + c) mod p
由于返回的值是确定性的,并且公式是众所周知的,因此应该可以获得状态的值。做这件事的最佳方法是什么

编辑:

当我发布这篇文章时,我正在工作,这与工作无关,所以我没有花太多时间,应该进一步阐述

假设这用于生成0到1之间的非整数值,但其唯一可见的输出是具有50/50排列的truefalse。假设实现也是已知的,那么acp的值是已知的,而不是X


在有限的输出量下,有可能确定X的值吗?

在最简单的情况下,输出是状态——输出是序列X0,X1,X2。。。每个元素都是一个步骤的内部状态


更常见的是,LCRNG将被分割,以生成范围为[0,k)而不是[0,p]的统一数字(输出值为下限(kXn/p),)so将只告诉您内部状态的高位。在这种情况下,每个输出值将为您提供该步骤中状态的一个可能值范围。通过关联多个连续值,您可以缩小范围。

您是以编程方式提问,还是以数学方式提问?我想知道,您可能会得到更多关于该步骤的响应,但你可以从科学数学开始。