基本的に、私は4バイトの入力とそれに対応する4バイトの出力の大きな(100,000〜150,000の値を取得する可能性がある)データセットを持っています。入力が一意であることが保証されているわけではありませんが(疑似乱数を生成して入力を追加または排他的論理和して一意になることができると考えているため、実際には問題ありません)、出力は次のように保証されていません。どちらかが一意である(したがって、2つの異なる入力セットが同じ出力を持つ可能性があります)。
データセットの値を効果的にモデル化する関数を作成しようとしています。効率的に補間する必要はありませんし、まったく必要ありません(これは、この静的データセットに含まれていない入力をフィードすることは決してないということです)。ただし、可能な限り効率的である必要があります。補間を調べたところ、探しているものに実際には適合しないことがわかりました。たとえば、値の数が多いということは、スプライン補間が区間ごとに多項式を作成するため、スプライン補間が実行されないことを意味します。
また、私の理解では、多項式補間は計算コストがかかりすぎます(n値は、多項式にpow(x、n-1)までの項が含まれる可能性があることを意味します)。x=4バイトの数値およびn= 100,000の場合、それはまったくありません。実行可能)。しばらくオンラインで調べてみましたが、数学はあまり得意ではなく、今のところ似たようなものに出会ったことがないので、検索するのに適切な用語を知らないはずです。
これは完全に(穏やかに言えば)プログラミングの質問ではないことがわかります。事前にお詫び申し上げます。私は正確な解決策や完全な答えを探していません。この問題を自分で解決できるように、読み上げる必要のあるトピックへのポインタが必要です。ありがとう!
TL; DR-最初に与えられたデータポイントに適合させるだけでよいが、計算効率が高い補間の変形が必要です。
編集:いくつかの説明-私は出力が正確であり、近似ではない必要があります。これは、私が現在行っているいくつかの調査作業の一種の最適化であり、出力の実際のバイトがプログラムに存在しないように、このルックアップを実装する必要があります。現時点では、それについて多くを語ることはできませんが、私の仕事の目的では、暗号化(または圧縮またはその他の形式の難読化)はテーブルを非表示にするオプションではありません。入力にアクセスできる限り、出力を再作成できる数学関数が必要です。私はそれが物事を少しクリアすることを願っています。