ユーザー入力に基づいてソート機能を作成したいと思います。
次のものがあると仮定します。
- 1 から 10 までの順序付き整数リストまたはベクトルX 。
- 機能 F
- パラメータt
- 出力一覧○
私がやりたいことは、
F(X, t) = Y
つまり、同じ t の場合、同じ Y を提供する必要があります。
何か案が?
乱数発生器にtをシードし、リストをシャッフルします。
これよりも良い答えがあることを保証します.@GeorgSchollyの答えをよく理解していないことは認めますが、探している関数は多項式であり、補間によって取得できます.
たとえば、ベクトルXに 2 つの整数x 0、x 1があるとします。したがって、出力ベクトルYには 2 つの整数y 0、y 1が必要です。任意の 2 点(x 0 , y 0 )および(x 1 , y 1 )に適合する直線y=ax+bがあります。
一般に、n 個の点(x 0 , y 0 ) ... (x n-1 , y n-1 )は、次数n-1の多項式、つまり関数y = a nによって常に完全に適合します。 -1 x n-1 + a n-2 x n-2 + ... + a 2 x 2 + a 1 x + a 0 .
これらの係数a n-1 ... a 0は、「多項式補間」の多くの方法で見つけることができます。事実上、ベクトル形式の係数は関数F(x)を定義します。
最後に、パラメータtを組み込むには、単純に「不要な」項を追加します。つまり、 2 つの点を放物線 (直線ではない) に一致させ、3 つの点を 3 次 (放物線ではない) に一致させるなどです。固定小数点tとして使用する追加の a n。
はるかに簡単な方法がない場合(@ GoergSchollyの答えがまだ1つでない場合)、私は非常に驚かれることでしょう。