Simulation

In a simulation problem we write a program that simulates a real-world process, relying on our ability to generate random numbers to take account of the uncertainty of real-world processes like whether newborns are girls or boys, how long it will take to unload an airplane, the chances a vehicle will turn left or right or go straight. If we do this enough times we can make a reliable estimate of the probability of some event occurring.

Because we are usually simulating to find out what will happen only because we don't already know what will actually happen they are notoriously difficult to test. Unlike a conversion program where we know some correct values we can use to test our program, in a simulation correct values can be hard to find. Consider for example models of climate change. They make quite different predictions so they can't all be right, and the only sure test is to wait 5, 10 or 50 years to find out which one is right.

As with so many topics you can read more at Wikipedia if you're interested.