作者PanJC ((#‵Д′)f〒﹌﹌﹌﹌﹌ꄩ
看板NCTU-STAT100
標題[閒聊] generating exponential(beta) distribution
時間Thu Jul 28 09:39:36 2011
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define PI 3.141592653589793
void genExp(double *arr, int n, double para);
double mean(double *arr, int n);
double variance(double *arr, int n, double sum);
int main(){
srand(10);
double *rv;
int n;
printf("Input the sample size: ");
scanf("%d",&n);
rv = (double *) calloc(n,sizeof(double));
genExp(rv, n, 2.0);
double m1, v1;
m1 = mean(rv,n);
v1 = variance(rv,n,m1);
printf("mean: %lf\n",m1);
printf("variance: %.4lf",v1);
free(rv);
}
void genExp(double *arr, int n, double para){
int i;
double u1;
for( i = 0 ; i < n ; i++ ){
u1 = (double) rand() / RAND_MAX;
arr[i] = -para*log(u1);
}
}
double mean(double *arr, int n){
int i;
double sum=0.0;
for( i = 0 ; i < n ; i++ ){
sum += arr[i];
}
return(sum/n);
}
double variance(double *arr, int n, double sum){
int i;
double tmp=0.0;
for( i = 0 ; i < n ; i++ ){
tmp += pow(arr[i],2);
}
return(tmp/n - pow(sum,2));
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.7.248