コード例 #1
0
ファイル: misc.c プロジェクト: cabul/smde-qt
// Draw a distribution
// Histogram with 10 intervals
void draw_dist(FILE *f, struct dist *dist) {
	const int nrolls = 10000;
	const int nstars = 100;
	const int nintervals = 10;

	int p[nintervals];
	for (int i=0; i<nintervals; ++i) p[i] = 0;

	double *r = malloc(sizeof(double)*nrolls);
	memcheck(r);

	double rmax = DBL_MIN;
	double rmin = DBL_MAX;

	for (int i=0; i<nrolls; ++i) {
		r[i] = rand_dist(dist);
		rmax = max(rmax, r[i]);
		rmin = min(rmin, r[i]);
	}

	for (int i=0; i<nrolls; ++i) {
		double rnorm = (r[i]-rmin)/(rmax-rmin);
		if (rnorm < 1.0) ++p[(int)(rnorm * (double)nintervals)];
		else ++p[nintervals-1];
	}

	print_dist(f, dist);

	for (int i=0; i<nintervals; ++i) {
		fprintf(f, "%d: ", i);
		for (int j=0; j<p[i]*nstars/nrolls; ++j) fprintf(f, "*");
		fprintf(f, "\n");
	}
}
コード例 #2
0
 static T create_random_scalar() 
 {
     uniform_distribution<T> rand_dist;
     return rand_dist();
 }