📄 ojldalgorithm.java~1~
字号:
package datamining;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class ojldAlgorithm {
private double[] record1,record2; //即对应于数据库中n维的一条记录
private int record1Dimension,record2Dimension;
private double value;//该算法的计算结果
private boolean flag;//标识两条记录的维数是否相同
public double[] getRecord1(){
return record1;
}
public boolean getFlag(){
return this.flag;
}
public void setFlag(boolean flag){
this.flag=flag;
}
public double[] getRecord2(){
return record2;
}
public int getrecord1Dimension(){
return record1Dimension;
}
public int getrecord2Dimension(){
return record2Dimension;
}
public double getValue(){
return value;
}
public void setValue(double value){
this.value=value;
}
public void setNumber1Dimension(double[] record1){
this.record1Dimension=record1.length;
} //设定记录1的
public void setNumber2Dimension(double[] record2){
this.record2Dimension=record2.length;
}
public boolean setRecordValue(double[] record1,double[] record2){
this.record1=new double[record1Dimension];
this.record2=new double[record2Dimension];
if(isEqualDimension()){
for(int i=0;i<this.record1Dimension;i++){
this.record1[i]=record1[i];
this.record2[i]=record2[i];
}
}
return flag;
}//在改类中记录下两条记录的值,若两条记录的维数不同,则返回false,告知不能在改类中设定
public boolean isEqualDimension(){
flag=false;
if(this.record1Dimension==this.record2Dimension)
flag=true;
return flag;
} //两个数的维度是否相同
public ojldAlgorithm(double[] record1,double[]record2) {
this.setNumber1Dimension(record1);
this.setNumber2Dimension(record2);
this.setRecordValue(record1,record2);
}//构造函数
public double calculate(){
if(this.flag){
value = 0;
for (int i = 0; i < this.record1Dimension; i++) {
value = value +
(record1[i] - record2[i]) * (record1[i] - record2[i]);
}
value = Math.sqrt(value);
}
else{
value=-1; //如果FLAG为false 即两条记录的维数不相同时,返回-1值
}
return value;
}
}//依欧几里德算法计算结果
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -