@munch1324が正しいと仮定すると、問題は次のとおりです。
1000 個のデータ ポイントのコレクションを指定して、データ セットに一致する関数を動的に生成します。
はい、可能だと思います。ただし、関数をデータ コレクションのよりコンパクトな表現にすることが目標である場合は、運が悪いと思います。
次の 2 つの可能性があります。
区分的に定義された関数
int function foo(int x)
{
if (x==0) return 0;
if (x==1) return 0;
if (x==2) return 3;
if (x==3) return 4;
...
}
多項式補間
N 個のデータ ポイントは、N-1 次の多項式に正確に一致するように適合できます。
1000 個のデータ ポイントのコレクションが与えられた場合、お好みの方法を使用して、999 度の多項式の 1000 個の係数を解きます。
結果の関数は次のようになります。
int[] c; // Array of 1000 polynomial coefficients that you solved for when given the data collection
...
int function foo(int x)
{
return c[999]*x^999 + c[998]*x^998 + ... + c[1]*x + c[0];
}
格納する係数が 1000 個あり、x 値をそのような高べき乗にする数値的な問題が発生するため、これには明らかな問題があります。
もう少し高度なものを探している場合、ラグランジュ多項式は、すべてのデータ ポイントに適合する最小次数の多項式を提供します。