Предмет: Математика, автор: m9ckr

Решите.
Лягушка собралась к подружке Цапле на другой край болота, причем решила, что будет прыгать на кочки, либо на одну вверх, либо на одну кочку вправо, либо на одну кочку по диагонали - вправо и вверх. Сколькими разными путями Лягушка может допрыгать до своей подружки?

Приложения:

Ответы

Автор ответа: mathgenius
0
Задачка не из простых.
Чтобы понять как отыскать число возможных вариантов,начнем с простого. Рассмотрим сначало варианты когда лягушка не прыгает по диагонали. Эти варианты тоже входят в общее число всех возможных вариантов. Итак ,из рисунка видно ,чтобы добраться к цапле,независимо от того в каком порядке совершены прыжки,лягушка должна сделать ровно 10 прыжков. Из которых ровно 5 вправо и 5 вверх соответственно!(Тк кочки расположены квадратом 6*6) Тогда чтобы посчитать общее число таких вариантов нужно выбрать из 10 номеров прыжков те номера когда она прыгает вверх (вправо ),что неважно в силу симметрии задачи. То общее число таких вариантов: C(10;5) -число сочетаний 5 номеров из 10 возможных. Теперь перейдем от простого к более сложному. Из этих номеров можно выбрать те ,когда лягушка будет прыгать по диагонали. (лягушка может прыгнуть по диагонали не более 5 раз). Выберем случай ,когда лягушка прыгнула по диагонали n раз. В этом случае лягушка останеться прыгнуть вверх и право по 5-n раза,тк прыжок по диагонали равносилен прыжку вправо и вверх. Лягушка может прыгнуть по диагонали n раз ,заняв C(10-n,n) разных способов занятия 10-n номеров прыжков. Тк общее число прыжков ,которая сделает лягушка в этом случае равно:2*(5-n)+n=10-n.(Это очень тонкий момент)Тогда общее число вариантов для случая когда лягушка прыгает n раз: C(10-n;n)*C(10-2*n;5-n). Тогда общее число вариантов будет: N=C(10,5)+C(9,1)*C(8,4)+C(6,2)*C(8,3)+C(7,3)*C(4,2) +C(6;4)*C(2;1)+ C(5;5)*C(0;0) таких способов. Заметим что последний равный единице случай,соответствует 5 последовательным прыжкам по диагонали,которве кстати говоря являются самым коротким путем от лягушки к цапле. Сочетания сами Посчитайте по формуле.
Автор ответа: mathgenius
0
Ну это решение еще нужно проверять. Так что еще может все поменяться.
Автор ответа: mathgenius
0
С(0;0)=1
Автор ответа: mathgenius
0
Я сейчас проверю это для случая когда 4*4 кочек. И там посчитаю. Проверю работает ли принцип там. Но должно все работать.
Автор ответа: mathgenius
0
Да все работает. Я проверил на рисунке. Гарантирую верность решения.
Автор ответа: mathgenius
0
Поясню почему там 10-2n. Тк мы выяснили что у нас 10-n прыжков. Но при этом n из них занимают диагонали. Поэтому остается 10-2n. Это самый труднопонимаемый момент в этом задании. Даже я сначало подумал что там тоже 10-n.
Похожие вопросы
Предмет: Другие предметы, автор: apikstorm
яндек практикум (python) 9 урок, помогите код написать

Научите Анфису правильно называть количество новых сообщений, когда их меньше 100. Примените логический оператор or и множественное ветвление с elif, чтобы Анфиса выражалась грамотно. К примеру: «У вас 1 новое сообщение», «У вас 35 новых сообщений», «У вас 24 новых сообщения».
Правильное склонение определяется по последней цифре числительного. Её удобнее всего получать как остаток при делении на 10.
В коде этого задания он вычисляется оператором модулю %:
a = 17
# англ. remainder, «остаток»
remainder = a % 10 # остаток от деления `a` на 10
print(remainder)
# Будет напечатано: 7
Анфиса в цикле перебирает все числа от нуля до ста и должна напечатать сто сообщений с правильными склонениями.
Для каждого числа messages_count Анфиса вычисляет через модуло остаток от деления на десять и сохраняет его в переменную remainder:
remainder = messages_count % 10
Ваша задача — проверить, чему равен remainder и, в зависимости от его значения, задать в коде фразу в правильном склонении.
Фраза должна оканчиваться словами ...новых сообщений, если:
остаток от деления на 10 равен нулю,
остаток от деления на 10 больше либо равен пяти,
число сообщений — от 11 до 19.
Например: У вас 20 новых сообщений. У вас 37 новых сообщений. У вас 13 новых сообщений.
Если остаток от деления на 10 равен единице, текст должен оканчиваться словами ...новое сообщение (внимание: число 11 — исключение из этого правила!).
Например: У вас 31 новое сообщение.
В остальных случаях фраза должна оканчиваться словами ...новых сообщения.
Например: У вас 23 новых сообщения.
код
Добавьте новые условия в elif и else
for messages_count in range(0, 100):
remainder = messages_count % 10
if messages_count == 0:
print('У вас нет новых сообщений')
elif remainder == ...:
напишите ваш код здесь
...
elif remainder == ...:
напишите ваш код здесь
...
else
напишите ваш код здесь
...
Предмет: Математика, автор: миисс