我想根据用户输入创建一个排序功能。
假设你有:
- 有序整数列表或向量X,从 1 到 10。
- 功能 F
- 参数 t
- 输出列表Y
我要做的是'之间的一致功能
F(X, t) = Y
我的意思是对于相同的 t,它必须提供相同的 Y。
任何想法?
用t播种你的随机生成器并打乱列表。
我保证有比这更好的答案,我承认我不太理解@GeorgScholly 的答案,但也许你正在寻找的函数是一个多项式,可以通过插值获得。
例如,假设您的向量X有两个整数x 0、x 1,因此您的输出向量Y必须有两个整数y 0、y 1。有一条线y=ax+b适合任何两个点(x 0 , y 0 )和(x 1 , y 1 )。
一般而言,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,您可以简单地添加“不必要”项,即用抛物线(不是线)匹配两个点,用三次(不是抛物线)匹配三个点等,以便拥有额外的 a n用作固定点t。
如果没有更简单的方法(如果@GoergScholly 的答案还不是一个),我会感到非常惊讶。