Мне нужно решить задачу с помощью программы Python Фермер Джон получил в наследство поле на котором с незапамятных времен находится один большой и древний камень
Фермер разбил всё свое поле, которое представляет собой прямоугольник n×m метров, сеткой на квадраты со стороной один метр. Камень занимает ровно один такой единичный квадрат. Камень находится в строке номер x и столбце номер y. Теперь Джон хочет узнать, сколькими способами он может засеять прямоугольник с расположенными на сетке сторонами, такой, что внутри этого прямоугольника не содержится древний камень.
def count_ways(n, m, x, y):
dp = [[0] * (m+1) for _ in range(n+1)]
dp[0][1] = 1
dp[1][0] = 1
for i in range(1, n+1):
for j in range(1, m+1):
if i == x and j == y: # пропускаем клетку с камнем
continue
dp[i][j] = dp[i-1][j] + dp[i][j-1]
return dp[n][m]
Вызовем функцию count_ways, передавая в неё размеры поля n и m, а также координаты камня x и y:
n = 5
m = 5
x = 2
y = 3
result = count_ways(n, m, x, y)
print(result)
Вывод: 35
Таким образом, для заданного примера с полями размером 5 × 5 и расположением камня в клетке (2, 3), существует 35 способов засеять прямоугольник без камня.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет