Strange behaviour of var

Fabian talk2fab at online.de
Thu Nov 10 12:08:25 PST 2011


Hey guys,

I've got a problem - I've just written a few lines to approximate PI with the
Monte Carlo Method.

This is my code:

import std.stdio, std.conv, std.string, std.random;

void main()
{
	string buf;
	int n, hits;
	float x, y, pi;

	Random rnd;
	rnd.seed(unpredictableSeed);

	write("Please enter the number of approximation steps: ");
	stdin.readln(buf);
	buf = chomp(buf);

	if(isNumeric(buf))
	{
		n = parse!int(buf);
		for(int i = 0; i <= n -1; i++)
		{
			x = uniform(0.0f, 1.0f, rnd);
			y = uniform(0.0f, 1.0f, rnd);

			if((x*x + y*y) <= 1)
			{
				hits++;
				writeln(hits);	//only for debugging
			}
		}

		pi = (hits / n) * 4.f;
		writeln(pi);
 	}
}

But the result is always 0 because my var "hits" is set to zero before I try
to calculate PI. But why? Please help me.

Nice wishes
Fabian


More information about the Digitalmars-d-learn mailing list