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 + -
显示快捷键?