df.c

来自「diehard随机数测试套件的C程序代码」· C语言 代码 · 共 63 行

C
63
字号
#include <stdio.h>#include <math.h>#include "macro.h"double G(double z);/*p.d.f of Standard Normal*/double phi(double x){  return exp(-x*x/2)/sqrt(2*PI);}/*c.d.f of Standard Normal*/double Phi(double x){  double tmp=x/sqrt(2.);  tmp=1+erf(tmp);   return tmp/2;}/*p.d.f of Chi-square*/double chisq(int df, double x){  return ( pow(x/2, (df-2)/2.)*exp(-x/2)/(2*G(df/2.)) );}/*c.d.f of Chi-square*/double Chisq(int df, double x){  switch(df){    case 1: return 2*Phi(sqrt(x))-1;    case 2: return 1-exp(-x/2);    default: break;  }  return ( Chisq(df-2,x)-2*chisq(df,x) );}/*p.d.f of Poisson distribution*/double Poisson(double lambda, int k){  if(k==0) return exp(-lambda);  return exp(-lambda)*pow(lambda, k)/G(k+1);  }/*main(){  char ch;  double x;  int df;  do{    scanf("%d%lf", &df, &x);    printf("%15.13f\n", chisq(df,x) );  }while( (ch=getchar())!='n' );  return;}*/

⌨️ 快捷键说明

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