⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 euclideancalculation.java

📁 dm s preparing process. In this case we use O distance.
💻 JAVA
字号:
/* created at 2005-12-24 */
package com.clustering.core.support;

import com.clustering.data.Record;
import com.clustering.data.SourceInfo;

/**
 * 欧式距离的计算方法
 * 
 * @author Avon
 * @version 0.9
 * @since 0.9
 */
public class EuclideanCalculation implements DistanceCalcutation {
	private SourceInfo info;

	// 欧式距离只会用到SourceInfo中getColumnNum,因此引入了colNum
	private long colNum;

	public EuclideanCalculation() {
		super();
		colNum = -1;
	}

	public EuclideanCalculation(SourceInfo info) {
		this.info = info;
		colNum = info.getColumnNum();
	}

	public SourceInfo getInfo() {
		return info;
	}

	public void setInfo(SourceInfo info) {
		this.info = info;
		colNum = info.getColumnNum();
	}

	/*
	 * 如果声明成getDistance(Record recordi, Record recordj, int colNum),那么
	 * getDistance就可以是static类型,但是这破坏了概念关系[DistanceCalcutation中没有 getDistance]
	 */
	@SuppressWarnings("deprecation")
	public double getDistance(Record recordi, Record recordj) {
		if (-1 == colNum) {
			// 认为同一数据源中的所有记录都是相同的
			colNum = recordi.getAsArray().length;
		}
		double total = 0;
		double tmp;
		for (long i = 0; i < colNum; i++) {
			tmp = recordi.getItem(i) - recordj.getItem(i);
			total += tmp * tmp;
		}
		if (0 == total)
			return 0;
		return Math.sqrt(total);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -