Explore BrainMass

Random Walk Simulation C program

Need C program for problem:

Random Walk Simulation

A two-dimensional array (N X M) should be used to represent the number of times the bug reached each tile on the floor. All cells of this array should be initialized to zero. The position of the bug on the floor is represented by the coordinates (i-bug, j-bug). The eight possible moves the bug can make at each time interval are represented by the tiles located at [i-bug + i-move(k), j-bug + j-move(k)] where 1<k<8 and :

i-move(1) = -1 j-move(1) = 1
i-move(2) = 0 j-move(2) = 1
i-move(3) = 1 j-move(3) = 1
i-move(4) = 1 j-move(4) = 0
i-move(5) = 1 j-move(5) = -1
i-move(6) = 0 j-move(6) = -1
i-move(7) = -1 j-move(7) = -1
i-move(8) = -1 j-move(8) = 0

A random walk to one of the eight given squares is simulated by generating a random value for k lying between 1 and 8. The bug can not move up the wall so those coordinates which lead beyond a wall must be ignored and a new random combination formed. Each time a square is touched, the count for that square is incremented. Thus, a non-zero entry in the array shows the number of times the bug has landed on the corresponding square. When every square has been touched at least once, the simulation is complete.

Design a program to perform the simulation using a 40 by 20 tiled floor (N = 40, and M = 20). For each run, output:

a. The total number of legal moves which the bug makes
b. The final values in the N by M array (this will show the "density" of the walk, that is, the number of times each tile on the floor was touched during the experiment)

You should include an iteration limit, that is, a maximum number of squares that the bug may enter during the experiment. This assures that your program will not get "hung" in an infinite loop. A maximum of 50,000 iteration is appropriate for this simulation.

Solution Summary

A random walk simulation for c program is examined.