看板 NCTU-STAT100 關於我們 聯絡資訊
#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