Answered step by step
Verified Expert Solution
Question
1 Approved Answer
I need this in c programming the assignment is given and also code is given you just have to code the lines where it says
I need this in c programming
the assignment is given and also code is given you just have to
code the lines where it says TODO here
please edit the code that I have given and please send me a screenshot of the output as well
It's a single assignment so please do answer both parts
Exercise 1. (50 points) Diffusion In this exercise, we use a 3D random walk to simulate a diffusion process. Imagine a particle starting at the origin (0,0,0) that has equal probabilities to go in 6 possible directions - left, right, backward, forward, down, and up. For example, when the particle is at (x, y, z), with equal probability 1/6, its next location is at (x 1, y, z), (x+1, y, z), (x,y 1, 2), (x, y +1, 2), (x, y, z 1) or (x,y,z +1). The particle will conduct the random walk for n steps. We are interested in the distribution of the final locations of particles after each takes n steps. Specifically, we would like to know the distribution of the distance between the final location and the origin. In order to obtain this distribution, we simulate m such particles, and check the proportion of the particles that lies within rn distance from the origin, where r is a real number between 0 and 1. Note all the particles will be within a sphere with radius n since particles only move n steps and the furthest they can go is a distance n from the origin. In our simulation, we will calculate the proportion of particles that are within rn from the origin for r = 0.05,0.10,0.15,...,0.90, 0.95, 1.00. Below is the main() function for this program. Note how we use command line arguments. int main(int argc, char *argv[]) if(argc != 3) printf("Usage: %s n m ", argv[0]); return 0; int n = atoi (argv[1]); int m = atoi(argv[2]); srand (12345); diffusion(n, m); return 0; We need to implement the function void diffusion(int n, int m) In this function, we need to dynamically allocate memory to represent a 3D grid where x, y, z coordinates range from -n to n. For all the possible x, y, z coordinates within the range, we save the number of particles that end up at the location (x, y, z). During the simulation, if the final location of a particle is (x, y, z), the corresponding value will be incremented by 1. Generate a random number using rand() % 6. If this number is 0 or 1, you should move left or right on the x-axis, respectively. If it is 2 or 3, you should move up or down on the y-axis, respectively. If it is 4 or 5, move up or down on the z-axis, respectively. In the implementation of main, we use the below function to print out results. void print_result(int *grid, int n) printf ("radius density "); for(int k = 1; k #includeStep by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started