📄 random_vari_statistic.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 + -