# 1 Monte Carlo Algorithms and ``Random'' Numbers

In this chapter, we discuss the application of Monte Carlo methods to scientific and engineering problems. There are problems which can be solved only by the Monte Carlo method, and there also are problems which are best solved by the Monte Carlo method. However, the method is often referred to as the ``method of last resort,'' as it is apt to consume large computing resources. As such, it is a method ideally suitable for inclusion in a textbook on computational science, as Monte Carlo programs, due to their nature of consuming vast computing resources, have historically had to be executed upon the fastest computers available at the time, and employ the most advanced algorithms, implemented with substantial programming acumen.

Here, we provide a brief history of the Monte Carlo method. A good early work is that of Buffon's needle problem [54], where in 1768 Buffon, a French mathematician, experimentally determined a value of by casting a needle on a ruled grid. Many trials were required to obtain good accuracy. The objective of the work was a validation of statistical theory, as opposed to Monte Carlo simulations typically applied today, where answers to new physical problems are sought. Lord Rayleigh [53] even delved into this field near the turn of the century. Courant, Fredericks and Levy in 1928 showed how the method could be used to solve boundary value problems. Ensuing work [27] illustrated that if the entire field were sought, Monte Carlo methods are far from competitive. However, if the solution in a restricted region of space is sought (say at a point), then Monte Carlo methods may be used to great advantage, as they may be implemented in restricted regions of space and/or time.

(See exercise 8.)