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

📄 cntab2.cpp

📁 这是C++数值算法(第二版)的源代码,其中包含了目前一些比较常用的数值计算的算法.
💻 CPP
字号:
#include <cmath>
#include "nr.h"
using namespace std;

void NR::cntab2(Mat_I_INT &nn, DP &h, DP &hx, DP &hy, DP &hygx, DP &hxgy,
	DP &uygx, DP &uxgy, DP &uxy)
{
	const DP TINY=1.0e-30;
	int i,j;
	DP sum=0.0,p;

	int ni=nn.nrows();
	int nj=nn.ncols();
	Vec_DP sumi(ni),sumj(nj);
	for (i=0;i<ni;i++) {
		sumi[i]=0.0;
		for (j=0;j<nj;j++) {
			sumi[i] += nn[i][j];
			sum += nn[i][j];
		}
	}
	for (j=0;j<nj;j++) {
		sumj[j]=0.0;
		for (i=0;i<ni;i++)
			sumj[j] += nn[i][j];
	}
	hx=0.0;
	for (i=0;i<ni;i++)
		if (sumi[i] != 0.0) {
			p=sumi[i]/sum;
			hx -= p*log(p);
		}
	hy=0.0;
	for (j=0;j<nj;j++)
		if (sumj[j] != 0.0) {
			p=sumj[j]/sum;
			hy -= p*log(p);
		}
	h=0.0;
	for (i=0;i<ni;i++)
		for (j=0;j<nj;j++)
			if (nn[i][j] != 0) {
				p=nn[i][j]/sum;
				h -= p*log(p);
			}
	hygx=h-hx;
	hxgy=h-hy;
	uygx=(hy-hygx)/(hy+TINY);
	uxgy=(hx-hxgy)/(hx+TINY);
	uxy=2.0*(hx+hy-h)/(hx+hy+TINY);
}

⌨️ 快捷键说明

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