Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

НУЖНА ПОМОЩЬ ПО ИНФОРМАТИКЕ!!! Задача: ниже

aadddadd peaedd Ученик (90), открыт 3 недели назад
Есть лягушка и есть царевич, царевич в нижнем правом угля, лягушка в верхнем левом, и лягушка может только двигаеться на 1 вниз и вправо, есть 80 клеток и из них 24 ана которые лягушка не может наступить. Мне нужно подсчитать сколько есть вариантов для того чтобы лягушка дошла до царевича
4 ответа
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (257871) 3 недели назад
Кажется, у тебя есть пример задачи на динамическое программирование. Решается через построение матрицы, где каждая ячейка - количество путей до нее. Без точных координат запрещенных клеток решить невозможно.
Георгий Бочонок Мастер (1626) 3 недели назад
Инициализация таблицы: Создадим таблицу размером 8x10 (80 клеток). Заполним клетки, которые являются запрещёнными (24 клетки), нулями. Начальная клетка (верхний левый угол) будет равна 1, так как лягушка начинает свой путь именно здесь.

Заполнение таблицы: Для каждой клетки, если она не запрещена, вычисляем количество способов добраться до неё как сумму способов добраться до клетки сверху и слева.

Результат: Значение в нижнем правом углу таблицы будет искомым количеством способов.

Пример:

Предположим, у нас есть таблица 3x3, и запрещённых клеток нет. Тогда количество способов будет выглядеть так:

text
1 1 1
1 2 3
1 3 6
В данном случае, количество способовдобраться до нижнего правого угла — 6.

Применение к вашей задаче:

Создайте таблицу 8x10 и отметьте 24 запрещённые клетки.

Заполните таблицу по описанному алгоритму.

Итоговое значение в нижнем правом углу будет ответом.

Если запрещённые клетки расположены случайно, точное количество способов можно вычислить только после заполнения таблицы.
Дмитрий Смекалов Мудрец (15990) 3 недели назад
Эта задача решается методом динамического программирования на сетке (гриде).
Нужно знать точные размеры сетки (например, 8x10 клеток, 10x8, или другие размеры, дающие в сумме 80) и точные координаты 24 "плохих" клеток.
Без этих данных точное число вариантов посчитать невозможно, но я опишу сам алгоритм.
Предположим, у нас есть сетка размером N строк и M столбцов (где N * M = 80).
Лягушка стартует в [0, 0] (верхний левый угол), царевич в [N-1, M-1] (нижний правый).
Создаем двумерный массив (таблицу) dp[N][M], где dp[i][j] будет хранить количество способов дойти до клетки [i, j].
Инициализируем таблицу нулями.
Если стартовая клетка [0, 0] не заблокирована, устанавливаем dp[0][0] = 1. Если заблокирована, то путей 0.
Заполняем первую строку: для каждой клетки [0, j] (j от 1 до M-1), если она не заблокирована, то dp[0][j] = dp[0][j-1]. Если клетка [0, j] заблокирована или dp[0][j-1] было равно 0, то dp[0][j] = 0.
Заполняем первый столбец: для каждой клетки [i, 0] (i от 1 до N-1), если она не заблокирована, то dp[i][0] = dp[i-1][0]. Если клетка [i, 0] заблокирована или dp[i-1][0] было равно 0, то dp[i][0] = 0.
Проходим по остальным клеткам таблицы (i от 1 до N-1, j от 1 до M-1).
Для каждой клетки [i, j]:
Если клетка [i, j] заблокирована (одна из 24 плохих), то dp[i][j] = 0.
Если клетка [i, j] не заблокирована, то dp[i][j] = dp[i-1][j] + dp[i, j-1] (количество путей сверху + количество путей слева).
Итоговое количество вариантов будет храниться в последней ячейке таблицы dp[N-1][M-1].
Чтобы получить число, нужны точные размеры сетки (N и M) и список координат заблокированных клеток.
Похожие вопросы