Question: Please code in C language starter code is: #include #include #include //TODO //Implement the below function //Simulate one particle moving n steps in random directions

Please code in C language starter code is:

#include

#include

#include

//TODO

//Implement the below function

//Simulate one particle moving n steps in random directions

//Use a random number generator to decide which way to go at every step

//When the particle stops at a final location, use the memory pointed to by grid to

//record the number of particles that stop at this final location

//Feel free to declare, implement and use other functions when needed

void one_particle(int *grid, int n)

{

}

//TODO

//Implement the following function

//This function returns the fraction of particles that lie within the distance

//r*n from the origin (including particles exactly r*n away)

//The distance used here is Euclidean distance

//Note: you will not have access to math.h when submitting on Mimir

double density(int *grid, int n, double r)

{

}

//use this function to print results

void print_result(int *grid, int n)

{

printf("radius density ");

for(int k = 1; k

{

printf("%.2lf %lf ", 0.05*k, density(grid, n, 0.05*k));

}

}

//TODO

//Finish the following function

//See the assignment decription on Piazza for more details

void diffusion(int n, int m)

{

//fill in a few line of code below

for(int i = 1; i

print_result(grid, n);

//fill in some code below

}

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]);

assert(n >= 1 && n

assert(m >= 1 && m

srand(12345);

diffusion(n, m);

return 0;

}

Please code in C language starter code is: #include #include #include //TODO

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 (x1,y,z),(x+1,y,z),(x,y1,z),(x,y+1,z),(x,y,z1) 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. 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

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!