我正在寻找一个数学公式(或逻辑/ java程序化方法,但最好是原始数学方法),它将采用给定的,唯一的一系列数字并将它们线性化。
EG:1,2,4,7,10 ==> 0,1,2,3,4
。
{0=1,1=2,2=4,3=7,4=10}, 10,2,7,4,1 ==> 4,1,3,2,0
。[n,m]
范围内的常量,并且会有c
个数字。 n
和m
可以是任何正数> 0,但是m>n
。和m-n != c
。 这与java一起用于获取与构造函数关联的一串唯一ID,并对它们进行排序0,1,2,3,4,以便可以将它们分配到已排序的数组中而无需实际排序,只需派生它们基数和执行错误检查以避免填充元素两次或留空格。
这用于提供关于这些唯一数字在大小为n
的数组中的位置的“最佳猜测”。在这样做时,我希望实现一种更强大的排序算法,该算法在很短的时间内处理,因为它不需要多次实际通过数组(最初和最小值在最初填充数组时确定)。 / p>
根据要求,增加输入/输出:
int n=1350,m=1500,c=5;
/**
* Note that the items in output are the results,
*respective to element, of the mathematical
*function applied against the elements of input.
**/
int[] input = {1350,1500,1365,1450,1490};
...some f(input[x]) happens here...
int[] output= {0 ,4 ,1 ,2 ,3 };
当然,我理解你需要大大超过5个元素来确定项目的准确度,但是在进行复制之前检查元素是否为空来进行舍入仍然会比通过比较对整个数组进行排序。
答案 0 :(得分:1)
我会研究一个好的线性回归算法。
这有一些示例的链接,只需将所有权重设置为1:
或者这里有更多代码
http://introcs.cs.princeton.edu/java/97data/LinearRegression.java.html
只需将独立值插入为x,将相关值插入为y和voila!
如果您在将数据解释为线性形式时遇到任何问题,则y = mx + b: