## 1.1 Major Components of a Monte Carlo Algorithm

Given our definition of Monte Carlo, let us now describe briefly the major components of a Monte Carlo method. These components comprise the foundation of most Monte Carlo applications, and the following sections will explore them in more detail. An understanding of these major components will provide a sound foundation for the reader to construct his or her own Monte Carlo method, although of course the physics and mathematics of the specific application are well beyond the scope of this chapter. The primary components of a Monte Carlo simulation method include the following:

• Probability distribution functions (pdf's) --- the physical (or mathematical) system must be described by a set of pdf's.
• Random number generator --- a source of random numbers uniformly distributed on the unit interval must be available.
• Sampling rule --- a prescription for sampling from the specified pdf's, assuming the availability of random numbers on the unit interval, must be given.
• Scoring (or tallying) --- the outcomes must be accumulated into overall tallies or scores for the quantities of interest.
• Error estimation --- an estimate of the statistical error (variance) as a function of the number of trials and other quantities must be determined.
• Variance reduction techniques --- methods for reducing the variance in the estimated solution to reduce the computational time for Monte Carlo simulation
• Parallelization and vectorization --- algorithms to allow Monte Carlo methods to be implemented efficiently on advanced computer architectures.

The remainder of this chapter will treat each of these topics in some detail. Later chapters will describe specific applications of the Monte Carlo method, relying on material in this chapter for the generic aspects common to most, if not all, such methods. But before we actually delve into the subject of Monte Carlo methods, let us look backwards and review some of their history.