関数の作成、ヘッダファイル

  • 関数の作成としてこちらでは暦を扱っている。
    • includeの使い方(こちら)と、関数の定義とそれを使ったmain()関数を作る、ということのようなので、メルセンヌ・ツイスターの一様乱数を使った逆変換法による指数乱数発生をやってみる(こちら)
    • includeではstdio.h 標準入出力(コンソールに表示)、コンピュータ内の時刻を使って乱数の種を作るのに必要なtime.h、対数関数log()を使うためのmath.h、そして最後にメルセンヌ・ツイスター乱数発生のためのヘッダファイルを読みこませている
    • そのうえで、一様乱数の関数Uniform()を書き、それを使って指数乱数の関数rand_exp()を書き、そのうえで、指数関数のパラメタをべたに指定して100個の乱数を発生させ実数的に%f(こちら)させている
#include <stdio.h>
#include <time.h>
#include <math.h>
#include "MT.h"
 
 
double Uniform( void ){
    return genrand_real3();
}

double rand_exp( double lambda ){
   return -log(Uniform())/lambda;
}

int main(void){
	int i;
	double lambda = 2;
	init_genrand((unsigned)time(NULL));
	for(i=0;i<100;i++){
		printf("%f\n",rand_exp(lambda));
	}
}