*/
Задание:
Запрограммировать последовательный вариант клеточного автомата. Для получения случайного числа (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 |
C помощью функции gettimeofday1 измерить время работы программы.
Построить зависимость времени выполнения от N.
Разделить КА между процессами на полосы с перекрытием, как показано на рисунке. Вывести на печать полосу автомата на каждом процессе и весь КА.
С помощью 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 /*микросекунды*/