java - 线性化数值序列的数学方程

标签 java math linearization

我正在寻找一个数学公式(或逻辑/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数字。
  • nm可以是任何 > 0 的正数,但 m>n 。和m-n != c

这与 java 一起使用,以获取与构造函数关联的唯一 ID 字符串,并将它们排序为 0,1,2,3,4,以便可以将它们分配到排序数组中,而无需实际排序,只需派生它们即可基数并执行错误检查以避免重复填充元素或留下空格。

这用于提供关于这些唯一数字在大小为 n 的数组中的位置的“最佳猜测” 。在这样做时,我希望实现一种更强大的排序算法,该算法可以在很短的时间内完成处理,因为它不需要实际多次遍历数组(最大值和最小值在最初填充数组时确定)。

根据要求,额外的输入/输出:

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 个元素来以任何精确度来确定该项目的位置,但是在进行复制之前结合进行舍入和检查以查看该元素是否为空仍然会比通过比较对整个数组进行排序。

最佳答案

我会研究一种好的线性回归算法。

这里有一些示例的链接,只需将所有权重设置为 1:

Weighted Linear Regression in Java

或者这里还有更多代码

http://introcs.cs.princeton.edu/java/97data/LinearRegression.java.html

只需将独立值插入为 x,将依赖值插入为 y,瞧!

如果您在将数据解释为线性形式时遇到任何问题,y=mx+b:

http://en.wikipedia.org/wiki/Simple_linear_regression

关于java - 线性化数值序列的数学方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13151564/

相关文章:

javascript - 我想显示Math.round(score * 0.10)的结果,但是显示的是结果的结果

c++ - 在 8 Puzzle | 中寻找曼哈顿距离的目标坐标C++

math - 缩放至兴趣点

Scala 特征混合顺序和 super 调用

database - MongoDb 可线性化读取关注限制

java - 设置 JTable 内 JTextField 的大小

java - 从 java 中清除 IntelliJ 控制台

java - java上的ffmpeg权限被拒绝

Java:如何获取UTC时间戳 '1000-01-01 00:00:00'?

c# - .NET 有检查和设置运算符吗?