已知结果计算多次(a*x+b)%n中最初的x

已知结果计算多次(a*x+b)%n中的x,


for _ in range(3):
    x = (a * x + b) % n
    print(x)

其中已知n和三次输出的x,请问大家有什么算法能算出最原始的x吗?x的数据大小在10的104次。谢谢大家

这个不可能
比如 x = (3 * x + 2)%5
如果print输出x为3,那么原始x=2和7,以及2+ 5 * n的时候,输出x都是3
所以不是唯一解,自然就不知道原始x是多少

a n b都已知吗?

我遇到过已知输入和输出,估计参数的问题,就是估计你的题目中的a和b。你的这个题目告诉了输出是多少,说没说a和b的系数都是多少呢?

这个不可能
比如 x = (3 * x + 2)%5
如果print输出x为3,那么原始x=2和7,以及2+ 5 * n的时候,输出x都是3
所以不是唯一解,自然就不知道原始x是多