基本上我有一个大的(可以得到多达 100,000-150,000 个值)4 字节输入及其相应的 4 字节输出的数据集。不能保证输入是唯一的(这不是真正的问题,因为我认为我可以生成伪随机数来添加或异或输入,以便它们变得唯一),但不能保证输出也是唯一的(因此两组不同的输入可能具有相同的输出)。
我正在尝试创建一个函数来有效地模拟我的数据集中的值。我不需要它来有效地插值,甚至根本不需要它(我的意思是我永远不会向它提供不包含在这个静态数据集中的输入)。但是,它确实需要尽可能高效。我研究了插值,发现它并不真正适合我正在寻找的东西。例如,大量值意味着样条插值不起作用,因为它会为每个间隔创建一个多项式。
此外,根据我的理解,多项式插值在计算上过于昂贵(n 值意味着多项式可以包含高达 pow(x,n-1) 的项。对于 x= 4 字节数和 n=100,000 它只是不是可行的)。我已经尝试在网上寻找一段时间了,但我的数学不是很强大,而且我一定不知道要搜索的正确术语,因为到目前为止我还没有遇到过类似的东西。
我可以看到这并不完全(委婉地说)一个编程问题,我提前道歉。我不是在寻找确切的解决方案,甚至不是完整的答案。我只需要关于我需要阅读的主题的指针,这样我就可以自己解决这个问题。谢谢!
TL;DR - 我需要一种插值变体,它只需要适合最初给定的数据点,但计算效率很高。
编辑:一些澄清 - 我确实需要输出准确而不是近似值。这是对我目前正在做的一些研究工作的一种优化,我需要在没有输出的实际字节出现在我的程序中的情况下实现这个查找。目前我真的不能说太多,但我会说,就我的工作而言,加密(或压缩或任何其他形式的混淆)不是隐藏表格的选项。我需要一个数学函数,只要它可以访问输入,它就可以重新创建输出。我希望这能把事情弄清楚一点。