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

📄 random_vari_statistic.h

📁 随机遍量的产生程序说明: 1 功能:该程序目的是要能够产生包括均匀分布
💻 H
字号:
//Random_Vari_Statistic.h
//2003.11.7

#include "math.h"

float mean_of(float* pf,int num)
{
	if(num == 0) return 0;
	float temp = 0;
	for(int i = 0;i < num;i++)
	{
		temp = temp + pf[i];
	}
	return (temp/num);
}

float variance_of(float* pf,int num)
{
	float mean = 0;
	mean = mean_of(pf,num);
	float temp = 0;
	for(int i = 0;i < num;i++)
	{
		temp = temp + powf((pf[i] - mean),2);
	}
	return (temp/num);
}

void queuing(float* pf,int num)//from the min to the max
{
	float temp;
	for(int j = 1;j < num;j++)
	{
		for(int i = 0;i < (num-j);i++)
		{
			if(pf[i] > pf[i+1])
			{
                temp = pf[i];pf[i] = pf[i+1];pf[i+1] = temp;
			}
		}
	}
}
//概率密度对应之绘图函数。
//maxdraw指的是最大绘制点数.type是随机变量类型
int density_function(float* pf,int num,
					int maxdrawnum, float* draw_array,int type)
{
	float range = 0;          //绘图范围
	float start_x =0;         //范围起点
//	float end_x = 0;          //范围终点
	int i=0,t=0,s=1;
	queuing(pf,num);


	float fff[100];
	for(int ppp=0;ppp<100;ppp++)
	{
		fff[ppp]=pf[ppp];
	}



	switch(type)
	{
		case 0: range = 1;break;
		case 1: range = 5;break;
		case 2: range = 10;start_x = -1 * range/2;break;
		case 3: range = 5;break;
		default: break;
	}
	float interval = range/maxdrawnum;
	for(int j = 0;j < maxdrawnum;j++)
	{
	    draw_array[j] = 0;
    	for(i = t;i <num; i++)
		{
			if(pf[i] < (start_x + j * interval)) draw_array[j]++;
		    else {t = i;break;}
		}
	}
	for(i = 0;i < maxdrawnum;i++)
		draw_array[i] = draw_array[i]/num;
	
	return 1;
}

⌨️ 快捷键说明

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