2CS21 PRACTICAL EXERCISE 6 - POISSON PROBABILITY

(Week 9 Starting November 23rd)

Hand in date - one week after your scheduled tutorial session in week 9.


1. REQUIREMENTS

The arrival rate of customers at some business (e.g. bank, post office, shop etc) can be estimated using the Poisson probability function:

Poisson(X) = (A^X x e^-A)/X!

where X is a number of customer arrivals per minute, A is the average number of arrivals per minute, X! is factorial(X), and e is Euler's number (2.7182818). For example if A = 3 them the probability of one customer entering the premises is:

Poisson(X=1) = (3^1 x 2.7182818^-3)/1
             = 0.149361

Develop an Ada program which takes as input a user supplied average arrival rate (A), and calculates and displays the Poisson probability associated with a range of values for X (numbers of customers arriving) according to the following:

EXAMPLE 1: Given A=9 (thus A-5 > 0) then the output would be on the following lines:

Number of |   Poisson
Customers | Probability
   (X)    |
----------+------------
    4     | 0.033737
    5     | 0.060727
    6     | 0.091091
    7     | 0.117117
    8     | 0.131756
    9     | 0.131756
   10     | 0.118581
   11     | 0.097021
   12     | 0.072765
   13     | 0.050376
   14     | 0.032384

EXAMPLE 1: Given A=2 (thus A-5 <= 0)) the output will be of the form:

Number of |   Poisson
Customers | Probability
   (X)    |
----------+------------
    1     | 0.270671
    2     | 0.270671
    3     | 0.180447
    4     | 0.090224
    5     | 0.036089
    6     | 0.012030
    7     | 0.003437

Assume that A is a positive integer between 1 and 10, and that output should be given accurate to 6 decimal places.

Note 1: The factorial program given in lectures is designed to operate using integers up to a maximum of !12. To solve the above problem you will need a FLOAT version.

Note 2: Euler's constant can be found in the MATH_CONSTANTS package where it is usually referred to as EXP1 (but not for all compilers!).


2. REPORT

You should hand in a report comprising the following sections:

  1. Requirements
  2. Design - including top down analysis, Nassi-Shneiderman and flow chart(s)
  3. Implementation
  4. Test cases and results as appropriate.

Marks distributed evenly between: design, implementation and testing. Refer to guidance notes on the presentation of work if necessary.




Created and maintained by Frans Coenen. Last updated 11 October 1999