Модели диффузии

*/

Задание:

  1. Запрограммировать последовательный вариант клеточного автомата. Для получения случайного числа (0 или 1) можно использовать выражение “rand()&1;“. Проверить правильность программы на следующих примерах размером N×N. Размер квадратика из единиц во втором примере N/10×N/10. N выбрать произвольно, но так, чтобы примеры помещались на экран.

 

0

0

0

0

0

0

0

0

0

 

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

 

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

 

0

0

0

0

0

0

0

0

0

0

 

0

0

0

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

 

0

0

0

1

1

1

1

0

0

0

1

1

1

1

1

1

1

1

1

 

0

0

0

1

1

1

1

0

0

0

1

1

1

1

1

1

1

1

1

 

0

0

0

1

1

1

1

0

0

0

1

1

1

1

1

1

1

1

1

 

0

0

0

0

0

0

0

0

0

0

 

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

1

 

0

0

0

0

0

0

0

0

0

0

 

 

  1. C помощью функции gettimeofday1 измерить время работы программы.

  2. Построить зависимость времени выполнения от N.

  3. Разделить КА между процессами на полосы с перекрытием, как показано на рисунке. Вывести на печать полосу автомата на каждом процессе и весь КА.

 

  1. С помощью Excel нарисовать зависимость времени вычисления от числа процессов (от 1 до 10 процессов) для пяти фиксированных N.

 

 

 

1 Пример вызова:

#include <sys/time.h>

….

struct timeval tv;

gettimeofday(&tv,NULL); /*время в секундах, начиная с 1 января 1970 года*/

s = tv.tv_sec /*секунды*/

ms = tv.tv_usec /*микросекунды*/