defaultpvaluecalculation.java
来自「dm s preparing process. In this case we 」· Java 代码 · 共 113 行
JAVA
113 行
/* created at 2006-1-2 */
package com.clustering.core.support;
import java.io.CharArrayWriter;
import java.io.PrintWriter;
/**
* @author Avon
* @version 0.9
* @since 0.9
* @see PValueCalculation
*/
public class DefaultPValueCalculation implements PValueCalculation {
protected double P;
protected Object[] values;
protected boolean isLog;
private CharArrayWriter cWriter;
private PrintWriter out;
public DefaultPValueCalculation() {
isLog = false;
}
public DefaultPValueCalculation(boolean isDebug) {
this.isLog = isDebug;
if (isDebug) {
cWriter = new CharArrayWriter();
out = new PrintWriter(cWriter);
}
}
/**
* @see com.clustering.core.support.PValueCalculation#getNextP(java.lang.Object[])
*/
public double getNextP(Object[] values) {
this.values = values;
/*
* return P;
*/
P=0.55;
return 0.55;
}
/**
* @see com.clustering.core.support.PValueCalculation#isOK()
*/
public boolean isOK() {
/*
* 通过1-P*values[getIndex(i, j)]来判断p选的是否ok,不ok的话计算出一个p,而后this.P = p,例如:
*/
if (0 == P) {
return false;
}
/*
* 添加p的计算逻辑,计算出p后this.P = p;
*/
return true;
}
/**
* 返回对称阵中[i,j]位置的元素在三角阵中的存储位置.
*
* @param i
* 矩阵的行
* @param j
* 矩阵的列
* @return [i,j]在对称阵中的位置
* @see com.clustering.core.SimpleSymetricalMatrix#getIndex(long, long)
*/
protected int getIndex(int i, int j) {
if (i > j) {
return i * (i + 1) / 2 + j;
}
return j * (j + 1) / 2 + i;
}
/**
* 设置记录信息,这些记录信息将在SimpleFuzzyMatrix#fuzzyMatrixToString()方法中使用
*
* @param s
* 记录信息
*/
protected void log(String s) {
CharArrayWriter cWriter = new CharArrayWriter();
PrintWriter out = new PrintWriter(cWriter);
out.print('\t');
out.println(s);
}
/**
* 这个方法将会被SimpleFuzzyMatrix#fuzzyMatrixToString()方法使用,用来获取信息
*
* @return
*/
public String getLog() {
if (isLog) {
cWriter.close();
out.close();
return cWriter.toString();
} else {
return null;
}
}
public boolean isLog() {
return isLog;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?