def matrix_mul(m1, m2):
pass # pass -- это оператор, который ничего не делает. Вмество него должен быть ваш код
Например, результатом работы функции matrix_mul(m1, m2)
для матриц
m1 = [ [1, 2, 3], [5, 5, 6] ]
и m2 = [ [3, 2], [4, 2], [1, 1] ]
будет матрица
m1 = [ [14, 9], [41, 26] ]
count_neighbours
, определяющую количество соседей клетки с координатами x, y, принадлежащей колонии. Колония клеток задается множеством пар координат (множеством кортежей). Координаты клетки - целые числа.# Глобальная переменная - список пар смещений координат соседей, включая смещение (0, 0).
# Всего 9 пар.
dxdy = [(dx,dy) for dx in range(-1,2) for dy in range(-1,2)]
def count_neighbours(colony, cell):
# Функция определяет количество соседей клетки с координатами
# cell[0], cell[1], принадлежащей колонии colony
# colony - множество пар координат клеток колонии
# { (x1,y1), (x2,y2), ... }
# получаем список значенией True/False (есть сосед/нет соседа)
# для всех 8 граничащих клеток
neighbors = [ (cell[0]+dx, cell[1]+dy) in colony for dx,dy in dxdy if dx!=0 or dy!=0]
# Вычисляем количество соседей (при суммировании True превращается в 1,
# а False в 0)
return sum(neighbors)
# Колония для тестирования работы функции
colony = { (1,1), (2,1), (3,1) }
# Количество соседей клетки с коодинатами (1,1)
c = (1,1)
n = count_neighbours(colony, c)
print("У клетки с координатами", c, n, "сосед(ей)")
У клетки с координатами (1, 1) 1 сосед(ей)
get_colony_area(colony)
:def get_colony_area(colony):
pass
Функция возвращающает множество координат живых клеток колонии и клеток, граничащих с колонией. Например, для колонии
colony = { (1,1), (2,1), (3,1) }
результатом работы функции будет множество (порядок клеток произвольный):
{ (0,1), (1,1), (2,1), (3,1), (4,1), (0,0), (1,0), (2,0), (3,0), (4,0), (0,2), (1,2), (2,2), (3,2), (4,2) }
next_generation(colony)
:def next_generation(colony):
pass
Функция определяет следующее поколение колонии. Например, для колонии
colony = { (1,1), (2,1), (3,1) }
результатом работы функции next_generation(colony)
будет колония (порядок клеток произвольный):
{ (2,2), (2,1), (2,0) }
def get_colony_stat(colony):
pass
Результат работы функции словарь вида:
{'n_born': 3, 'n_survives': 1}
{'n_born': 3, 'n_survives': 1}
def game_life( born = (3,), survives = (2,3) ):
pass
Функция возвращает ссылку на функцию типа next_generation(colony)
(см. задание 4), которая будет определять следующее поколение колонии по правилам развития колонии, определяемым параметрами born
и survives
. Аргумент survives
определяет количество соседей живой клетки, при котором клетка выжывает и переходит в следующее поколение. Аргумент born
определяет количество живых клеток-соседей пусткой клетки, при котором происходит рождение новой клетки.
Продолжение следует...
"""
@author: Раскольников Родион
Задание 1. Умножение двух матрицы
"""
'\n\n@author: Раскольников Родион\n\nЗадание 1. Умножение двух матрицы\n\n'
Файл с заданием отправляется по электронной почте yudintsev@termech.ru или в группу ВК.
Задания | Срок |
---|---|
1...6 | 15 ноября |
7 | |
8 | |
9 |