В основном у меня большой (может быть до 100 000-150 000 значений) набор данных с 4-байтовыми входами и соответствующими 4-байтовыми выходами. Входные данные не гарантированно являются уникальными (что на самом деле не является проблемой, потому что я полагаю, что могу генерировать псевдослучайные числа для добавления или преобразования входных значений, чтобы они стали уникальными), но выходные данные не гарантируются быть уникальным (поэтому два разных набора входов могут иметь одинаковый выход).
Я пытаюсь создать функцию, которая эффективно моделирует значения в моем наборе данных. Мне это не нужно для эффективной интерполяции или даже вообще (под этим я подразумеваю, что я никогда не собираюсь передавать ему входные данные, которые не содержатся в этом статическом наборе данных). Однако это должно быть максимально эффективным. Я посмотрел на интерполяцию и обнаружил, что он не совсем соответствует тому, что я ищу. Например, большое количество значений означает, что сплайн-интерполяция не будет выполняться, поскольку она создает многочлен за интервал.
Кроме того, с моей точки зрения, полиномиальная интерполяция была бы слишком вычислительно дорогой (n значений означает, что полином мог включать в себя такие же члены, как pow (x, n-1). Для x = 4-байтовое число и n = 100 000) это просто нереально). Я уже некоторое время пытался искать в Интернете, но я не очень силен в математике и не должен знать правильные термины для поиска, потому что я до сих пор не встречал ничего подобного.
Я вижу, что это не совсем (мягко говоря) вопрос программирования, и я заранее извиняюсь. Я не ищу точное решение или даже полный ответ. Мне просто нужны указатели по темам, которые мне нужно прочитать, чтобы я мог решить эту проблему самостоятельно. Спасибо!
TL; DR - мне нужен вариант интерполяции, который должен соответствовать только первоначально заданным точкам данных, но эффективен в вычислительном отношении.
Edit:
Некоторое уточнение - мне нужен точный вывод, а не приближение. Это своего рода оптимизация некоторой исследовательской работы, которую я сейчас выполняю, и мне нужно, чтобы этот поиск был реализован без фактических байтов выходных данных, присутствующих в моей программе. В настоящий момент я не могу много говорить об этом, но скажу, что для целей моей работы шифрование (или сжатие, или любая другая форма запутывания) не позволяет скрыть таблицу. Мне нужна математическая функция, которая может воссоздать вывод, если он имеет доступ к входу. Надеюсь, это немного прояснит ситуацию.