Огромное спасибо! Маленькое дополнение: в задаче №6 вводить функцию g(n) было необязательно, так как по условию переводим число 10 в число 33, ни одно число на отрезке [10;33] не содержит 9 во второй от конца позиции :)
Спасибо большое ! а так можно расписывать? например: при исходном числе 1 результатом является число 63 и при этом траектория вычислений содержит число 25 и не содержит число 6? def f(curr,end): if curr > end or curr == 6: return 0 elif curr == end: return 1 else: return f (curr+2,end)+f(curr*3,end) print(f(1,25)*f(25,63))
Спасибо за просмотр! Ближайшее видео по второй части планируется ориентировочно на 14 марта Это будет задачи 25 Смотри плейлист по 2-й части на главной странице канала!
@@ege_info Здравствуйте. Как написать программу с таким типом вопроса: Сколько различных чисел можно получить из числа 2 с помощью программы, которая содержит ровно 10 команд?
Уважаемый Семён, спасибо большое за такой информативный контент! Подскажите, пожалуйста, как модифицировать программу, при следующем вопросе: "Сколько существует программ, для которых при исходном числе 3 результатом является число 18, предпоследней командой которых является команда «2»?" Спасибо!
Как тут код будет выглядеть? Исполнитель преобразует число на экране. У исполнителя есть две команды, которым присвоены номера: 1. Удвоить 2. Удвоить и прибавить Первая команда умножает число на экране на 2, вторая - умножает его на 2, а затем прибавляет 1. Программа для исполнителя - это последовательность команд. Например, программа 121 при исходном числе 3 последовательно получит числа 6, 13 и 26. Результатом программы будет число 26. Сколько различных результатов можно получить из исходного числа 1 после выполнения программы, содержащей ровно 10 команд?
именно в этой 6 задаче можно было обойтись без добавления ещё одной функции, потому что минимальное число, в котором 9 десятков = 90, а нам нужно из 10 в 33, то есть можно оставить return f(x+1, y) + f(x+10, y)
Спасибо большое за ваши уроки! НО есть вопрос допусти нам надо прибавить следующие четное число как это будет выглядеть? я написала f(x+(x+x%2==0), y), но у меня выдает ошибку
Пожалуйста! Все зависит от условия, в твоём случае конечно он выдаст ошибку, т к условный оператор используешь без условия Чтобы найти следующее четное число, можно объявить функцию или написать x + (x - x%2+2)
задача 23 1 . разделить на 2 2. вычесть 1 диапазон 64->14 программа: def f(x,y): if x==y: return 1 if xy: return f(x//2,y) + f(x-1,y) print(f(64,14)) выдает ответ 63 а правильный 29, что не так?
8:00 - я считаю, что эту проверку нужно совершить до того, как мы проверились на равенство x и y. Мы ведь могли в каком-то из вариантов получить искомое число, последней командой придя в него из запретного числа.
Здравствуйте, спасибо за видео, расскажите, пожалуйста, как решаются задачи "калькулятор". Например 3664 задача на решу егэ складывать степени? 2**6+2**5+..+2 ?
У исполнителя Калькулятор две команды: 1. прибавь 2 2. умножь на 3. Первая из них увеличивает число на экране на 2, вторая - утраивает его. Сколько различных чисел можно получить из числа 2 с помощью программы, которая содержит ровно 3 команды? Никак не могу понять как осуществить некую проверку на то, какое количество команд выполнила моя функция. Я в теории понимаю, что я должен выполнить проверку на кол-во операций, как только оно равно 3 то выйти из функции и вернуть значение, но как осуществить это - не доходит(кстати это тот тип который вы не разбирали) P.s Ваши видео ТОП !
Добрый день! Большое спасибо за чудесное решение, но.....Не получились на Паскале задачи 23, в которых есть условие, что не содержатся какие-то числа. Помогите разобраться, пожалуйста. Заранее благодарю. function f (x,y:integer):integer; begin if x = y then F:= 1; if (x > y )or (x = 15)then f:=0; if x = 15 then f:=0; if x
Привет! Третье условие явно лишнее, но оно ни на что не повлияет Так чтобы разобраться нужно посмотреть на условие, т к этот код верный для задачи из 2 в 16 через 11 минуя 15!
Здравствуйте!) если условие "1) вычти 1 2)найди целую часть от деления на 2" число 30 в 1 и содержит 10 (Крылов 1 вариант) как реализовать 2 условие на Питоне ? программа ниже не получается(выводит 0) ( def f(х,у): if х>у: return 0 elif х==у: return 1 else: return f(х-1,у)+f(//2,у) print(f(30,10)*f(10,1))
Привет! Если первое число больше, почему ноль? Оно с условия больше и программа сразу выдает ноль в return пропцщен x поменять условие, добавить x и заработает
Представь себе ситуацию Из школы до дома ты идешь через магазин До магазина знаешь 3 дороги, от магазина до дома - две. Сколькими способами ты можешь дойти из школы до дома через магазин?
@@ege_info ну, получается, 2*3=6? 3 разные дороги в магазин... И не зависимо от того, по какой дороге шли, у нас будет ещё 2 дороги на выбор🤔 выходит, "тремя разными способами мы можем достичь ситуации, когда у нас будет 2 разных способа" хд Написано не понятно, но сам я вроде понял, спасибо)
Здравствуйте, подскажите, как рекурсией такое решать? Исполнитель Калькулятор преобразует число на экране. У исполнителя есть три команды, которым присвоены номера: 1. Прибавить 1 2. Прибавить 2 3. Умножить на 2 Сколько существует программ, состоящих из 6 команд, для которых при исходном числе 1 результатом является число 20?
Как вот это сделать? Первая из этих команд увеличивает число x на экране на 1, вторая переводит число x в число 2x+1. Например, вторая команда переводит число 10 в число 21. Программа для исполнителя НечетМ - это последовательность команд. Сколько существует таких программ, которые число 1 преобразуют в число 27, причём траектория вычислений не содержит число 26?
А почему программа, где нужно искать числа с траекторией, например 10, пишется как F(x, 10) * F(10, y)? Почему мы умножаем и почему во втором числе траектория пишется в начале, а не в конце, то есть как F(y, 10)?
"Сколько существует программ, которые преобразуют исходное число 1 в число 30 и при этом траектория вычислений содержит числа 10 и 21?" как записать 10 и 21?
@@ege_info если честно, сам не особо понимаю. В задании сказано: ''Известно, что исполнитель не может иметь траекторию, в которой одно и тоже число повторяется"
Не только можно было, но и нужно, так как в случае с поиском маршрута из 10 в 33 все отработает и с кодом из видео, но если траектория действительно содержит 9 во втором справа разряде, например, при поиске путей из 85 в 105 рекурсивный вызов функции f(g(x), y) при условии x < y будет осуществляться бесконечно, так как при достижении значений 90:99 g(x) будет возвращать всегда сама себя и при этом это значение будет
Вернее даже не просто добавить проверку elif (x // 10) % 10 == 9, т.к. она тоже не будет решать поставленную задачу (при достижении 90 функция будет возвращать значение 0, а должна продолжить работу по маршруту +1, а, например, добавить ветвление в случай продолжения расчета, вроде else: if x // 10 % 10 == 9: return f(x + 1, y) else: return f(x + 1, y) + f(x + 10, y)
Впервые вас увидел. Достойный преподаватель. Намного лучше по сравнению с другими. Уважаю! Смотрю! Учусь!
Спасибо за просмотр и теплые слова!
Единственный разбор 23 задания, который я понял. Спасибо огромное!!!
Супер! Я очень рад :)
Сегодня будут 15-е на отрезки!
самый лучший разбор 23 задачи на всем ютубе как по мне
Спасибо 😍
В сентябре будет обновление роликов))
Мужык, я до тебя кучу видосов посмотрел, нихера не понял как эти 23 задания делать...
А тут посмотрел и чисто всо понял... СПАСИБО
Спасибо!
Там ещё вторая серия есть с другими формулировками, найти можно в плейлисте по первой части на главной странице канала)
Семён, спасибо Вам большое!!!
Пользуйтесь наздоровье и сдавайте только на высокие баллы! 🤩
Спасибо вам большое!!! Это самый лучший, доступный и максимально понятный разбор, что я когда-либо видела!
Это очень приятно ☺️
Огромное спасибо!
Маленькое дополнение: в задаче №6 вводить функцию g(n) было необязательно, так как по условию переводим число 10 в число 33, ни одно число на отрезке [10;33] не содержит 9 во второй от конца позиции :)
Пожалуйста!
Спасибо :)
здравствуйте,спасибо большое! Глад Валакас не ожидал вас увидеть,но я всегда знал,что вы умный
Спасибо за просмотр!
смешные у тебя шутки, всем классом посмеялись -_-
Спасибо за такой уютный и понятный разбор
Я рад) к этому видео есть вторая часть про нахождение количества различных результатов, удачи на экзамене!
Спасибо огромное за разбор, очень помогает в задачах, которые на бумажке решаются долго!
Спасибо за отзыв и просмотр!
@@ege_info Ухххх спасибо, на задачу тратил минут 10 на бумаге и полная внимательность 😕, теперь легко
Спасибо за прекрасный способ! Благополучия вам в жизни)
Спасибо) рекурсия как и питон - one love
Огромное спасибо за подбор разнообразных заданий!
Спасибо за просмотр!
Спасибо большое за понятный разбор этого задания на питон!!
Пожалуйста ☺️
Отличное видео, спасибо!
Я рад :)
Спасибо большое за понятный и доступный разбор))))
Спасибо за отзыв и просмотр!!!
Хорошее и короткое решение, хороший способ, спасибо
Спасибо за просмотр!
Спасибо вам!)
Пожалуйста 🙂 на канале есть еще ролики по 23-й задаче 💪
Спасибо большое !
а так можно расписывать?
например: при исходном числе 1 результатом является число 63 и при этом траектория вычислений содержит число 25 и не содержит число 6?
def f(curr,end):
if curr > end or curr == 6:
return 0
elif curr == end:
return 1
else:
return f (curr+2,end)+f(curr*3,end)
print(f(1,25)*f(25,63))
Ну да, это верное решение!
Спасибо за просмотр!
Объясняете великолепно, все понятно и просто! Спасибо Вам!
Спасибо за просмотр!
Гениально! Спасибо вам большое!
Стараюсь 😊
Спасибо за просмотр!
Спасибо большое за полезный материал!
Спасибо за просмотр!
Боже мой, ну зачем столько времени потрачено на рисование графов на бумажке! Огромное спасибо!!!
Век живи, век учись))
Вы просто гуру рекурсивных алгоритмов...
Спасибо 😍
спасибо огромное!!!
очень полезный видео-урок!
Спасибо за просмотр! Ставь лайк и подписывайся на канал!
Спасибо за объяснение!
В течение месяца будет новая рекурсия для новых формулировок!
@@ege_info , буду ждать)
Вообще классно, спасибо за такое видео! Можно такие же видео по остальным заданиям второй части?
Спасибо за просмотр!
Ближайшее видео по второй части планируется ориентировочно на 14 марта
Это будет задачи 25
Смотри плейлист по 2-й части на главной странице канала!
@@ege_info Здравствуйте. Как написать программу с таким типом вопроса: Сколько различных чисел можно получить из числа 2 с помощью программы, которая содержит ровно 10 команд?
@@Роман-э7ф9й Привет! Многие просят, поэтому скоро будет ролик))
все доходчиво и просто объяснили, спасибо большое
Пожалуйста) Спасибо за просмотр!
Спасибо за понятнейшее объяснение и метод решения
Спасибо за просмотр ☺️
Спасибо большое за понятные видео)), а когда будет ещё одна часть по 23 заданию (с другими типами задач) ?
Спасибо за просмотр!
До мая точно будет))
Спасибо огромное!
Спасибо за просмотр!
Спасибо
Вот еще разбор интересных формулировок:
ruclips.net/video/Il1dEkkZmw8/видео.html
Уважаемый Семён, спасибо большое за такой информативный контент! Подскажите, пожалуйста, как модифицировать программу, при следующем вопросе: "Сколько существует программ, для которых при исходном числе 3 результатом является число 18, предпоследней командой которых является команда «2»?" Спасибо!
Привет!
Спасибо за отзыв 😍
Руками ее решай)
Как тут код будет выглядеть?
Исполнитель преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера:
1. Удвоить
2. Удвоить и прибавить
Первая команда умножает число на экране на 2, вторая - умножает его на 2, а
затем прибавляет 1.
Программа для исполнителя - это последовательность команд. Например,
программа 121 при исходном числе 3 последовательно получит числа 6, 13 и
26. Результатом программы будет число 26.
Сколько различных результатов можно получить из исходного числа 1 после
выполнения программы, содержащей ровно 10 команд?
Подобный прототип разбирал тут:
ruclips.net/video/A15ngOvxdpI/видео.html
именно в этой 6 задаче можно было обойтись без добавления ещё одной функции, потому что минимальное число, в котором 9 десятков = 90, а нам нужно из 10 в 33, то есть можно оставить
return f(x+1, y) + f(x+10, y)
Полностью согласен ☺️
@@ege_info но вы молодец, что упомянули это, ведь там могло быть, например, из 78 а 129
@@SUPPHY- 💪💪💪
Спасибо!
Спасиьо за просмотр!
Спасибо большое за ваши уроки! НО есть вопрос допусти нам надо прибавить следующие четное число как это будет выглядеть? я написала f(x+(x+x%2==0), y), но у меня выдает ошибку
Пожалуйста!
Все зависит от условия, в твоём случае конечно он выдаст ошибку, т к условный оператор используешь без условия
Чтобы найти следующее четное число, можно объявить функцию или написать x + (x - x%2+2)
@@ege_info Спасибо!
задача 23
1 . разделить на 2
2. вычесть 1
диапазон 64->14
программа:
def f(x,y):
if x==y:
return 1
if xy:
return f(x//2,y) + f(x-1,y)
print(f(64,14))
выдает ответ 63
а правильный 29, что не так?
Для деления явно что-то в условии дописано, что ты не учитываешь
спасибо👍
Пожалуйста!
Вот еще годный видос по задаче 23: ruclips.net/video/Il1dEkkZmw8/видео.html
8:00 - я считаю, что эту проверку нужно совершить до того, как мы проверились на равенство x и y. Мы ведь могли в каком-то из вариантов получить искомое число, последней командой придя в него из запретного числа.
Нет, ты не прав
@@ege_info почему?
Вау🔥
Спасибо)
Здравствуйте, спасибо за видео, расскажите, пожалуйста, как решаются задачи "калькулятор". Например 3664 задача на решу егэ
складывать степени? 2**6+2**5+..+2 ?
Спасибо за просмотр!
У исполнителя Калькулятор две команды:
1. прибавь 2
2. умножь на 3.
Первая из них увеличивает число на экране на 2, вторая - утраивает его. Сколько различных чисел можно получить из числа 2 с помощью программы, которая содержит ровно 3 команды?
Никак не могу понять как осуществить некую проверку на то, какое количество команд выполнила моя функция. Я в теории понимаю, что я должен выполнить проверку на кол-во операций, как только оно равно 3 то выйти из функции и вернуть значение, но как осуществить это - не доходит(кстати это тот тип который вы не разбирали)
P.s Ваши видео ТОП !
Привет!
Планирую разбор подобной формулировки, точной даты сказать не могу
Спасибо 😍
@@ege_info Понял, ждем-с
Привет! Выводит все возможные результаты:
def f(x,t):
if t == 0:
print(x)
return 0
else:
t -= 1
return f(x+2,t) + f(x*3, t)
f(2,3)
Такую формулировку разобрал, посмотри новое видео про два новых прототипа 23-й :)
@@lizagribich1231 спасибо за решение!
Добрый день! Большое спасибо за чудесное решение, но.....Не получились на Паскале задачи 23, в которых есть условие, что не содержатся какие-то числа. Помогите разобраться, пожалуйста. Заранее благодарю.
function f (x,y:integer):integer;
begin
if x = y then F:= 1;
if (x > y )or (x = 15)then f:=0;
if x = 15 then f:=0;
if x
Привет!
Третье условие явно лишнее, но оно ни на что не повлияет
Так чтобы разобраться нужно посмотреть на условие, т к этот код верный для задачи из 2 в 16 через 11 минуя 15!
@@ege_info
Спасибо. Я разобралась. В программе на Паскале не хватало Exit для прекращения работы подпрограммы когда не содержатся какие - то числа.
@@irinasoboleva2499 Молодец!
@@ege_info теперь разбираюсь с задачами, где предпоследняя команда 1.(Поляков. № 50).
Непросто
Здравствуйте!)
если условие
"1) вычти 1
2)найди целую часть от деления на 2"
число 30 в 1 и содержит 10
(Крылов 1 вариант)
как реализовать 2 условие на Питоне ?
программа ниже не получается(выводит 0) (
def f(х,у):
if х>у:
return 0
elif х==у:
return 1
else:
return f(х-1,у)+f(//2,у)
print(f(30,10)*f(10,1))
Привет!
Если первое число больше, почему ноль? Оно с условия больше и программа сразу выдает ноль
в return пропцщен x
поменять условие, добавить x и заработает
@@ege_info Благодарю 😊
Спасибо за уроки !
@@_all_s2273 Спасибо за просмотры :)
Я тут не понял... А почему мы перемножаем 2 вызова функции, когда нам обязательно надо зайти в какую-то точку?
Представь себе ситуацию
Из школы до дома ты идешь через магазин
До магазина знаешь 3 дороги, от магазина до дома - две. Сколькими способами ты можешь дойти из школы до дома через магазин?
@@ege_info ну, получается, 2*3=6?
3 разные дороги в магазин... И не зависимо от того, по какой дороге шли, у нас будет ещё 2 дороги на выбор🤔 выходит, "тремя разными способами мы можем достичь ситуации, когда у нас будет 2 разных способа" хд
Написано не понятно, но сам я вроде понял, спасибо)
Здравствуйте, подскажите, как рекурсией такое решать?
Исполнитель Калькулятор преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 1
2. Прибавить 2
3. Умножить на 2
Сколько существует программ, состоящих из 6 команд, для которых при исходном числе 1 результатом является число 20?
Спасибо за просмотр!
Включу в следующий ролик по задачам 23!
Самое короткое и понятное решение, которое может решить любую задачу:
import functools
@functools.lru_cache
def f(n, stop):
if n >= stop:
return n == stop
return f(n + 1, stop) + f(n + 3, stop) + f(n + 6, stop)
print(f(21, 30)) # 21 -> 30
print(f(21, 25) * f(25, 30)) # 21 -> 30 (через 25)
print(f(21, 30) - f(21, 27)) # 21 -> 30 (иск. 27)
print(f(21, 25) * (f(25, 30) - f(25, 27))) # 21 -> 30 (через 25, иск. 27)
понятное не для всех я так скажу
Здравствуйте, спасибо за видео. а как расписать команды 1. Сделать число четным. 2. Сделать число нечетным
Спасибо за просмотр!
Это зависит от того, что значит сделать четным и нечетным, по какому правилу?
Скорее всего описать отдельную функцию для этого!
2:40 всё правильно же было: последний if можно не писать.
Можно не писать да)
Здравствуйте! 3 способ неверно работает. Там не 186, а 18354, если решать этим способом.
Привет!
В решении все верно, ответ 186 ☝🏻
3:20 - можете пояснить этот момент? Почему вы суммируете функции?
Потому что каждый из этих функций будет в отдельности считать количество путей уже от нового числа, а тебе надо найти их общее количество
Каждый вызов возвращает количество вариантов, требуется найти количество вариантов, т е сумму всех возможных
лучший.
Кто?
@@ege_info вы определенно)
@@pank1ch а ну окей, спасибо ☺️😍
Как вот это сделать?
Первая из этих команд увеличивает число x на экране на 1, вторая переводит число x в число 2x+1. Например, вторая команда переводит число 10 в число 21. Программа для исполнителя НечетМ - это последовательность команд. Сколько существует таких программ, которые число 1 преобразуют в число 27, причём траектория вычислений не содержит число 26?
Все так же, как и в видео:
1) заменить команды
2) поставить условие на число 26 в получение нуля
@@ege_info можете показать? Я сделал через вторую функцию. Или ошибки выдаёт, или неправильный результат
в последней задаче где х > у выводит ошибку nonetype
Явный признак того, что код переписан с ошибкой
где чек-лист про который вы говорили в видео
В описании к ролику в самом начале есть ссылка
А если мне нужно достичь числа за определённое кол-во ходов?
Скорее всего ты имеешь ввиду вот такие формулировки:
ruclips.net/video/Il1dEkkZmw8/видео.html
А почему программа, где нужно искать числа с траекторией, например 10, пишется как F(x, 10) * F(10, y)? Почему мы умножаем и почему во втором числе траектория пишется в начале, а не в конце, то есть как F(y, 10)?
потому что у тебя начальным числом становится 10, тебе нужно из 10 попасть в y
Потому что до этого числа мы должны дойти, а затем идти от него до результата
А если нужно найти программу, в которой n-ое количество шагов за которые получили число?
Смотри в плейлисте по первой части на главной странице канала!
Видео про новые формулировки в 23 задании!
"Сколько существует программ, которые преобразуют исходное число 1 в число 30 и при этом траектория вычислений содержит числа 10 и 21?"
как записать 10 и 21?
Это в принте
f(1, 10) * f(10, 21) * f(21, 30)
@@ege_info спасибо вам, лучшее объяснение без воды)
большое спасибо за урок!
подскажите, пожалуйста, как задать условие, при котором x не должен повторяться по ходу вычисления y
Что значит не должен повторяться? Это какая-то новая авторская формулировка?
@@ege_info если честно, сам не особо понимаю. В задании сказано: ''Известно, что исполнитель не может иметь траекторию, в которой одно и тоже число повторяется"
@@ДмитрийТолмачев-г4н пришли мне, пожалуйста, скрин задачи
vk.com/sa_ovchinnikov
Все очень круто и понятно, ноо
Можно задачи, по типу преобразований не в десятичной системе))
Спасибо за просмотр!
У меня нет ещё кода для решения таких задач, поэтому пока ручками))
Добрый вечер! Помогите пожалуйста, команды исполнителя прибавь 3 и вычти 2. нужно найти путь из 2 в 18
Привет!
А почему бы по аналогии с разбором самому не сделать?
@@ege_info выдаёт ошибку... не получается минус и плюс совместить в коде
можно было в последнем вот так сделать: elif (x // 10) % 10 == 9:
return 0
вместо второй функции
Можно, я функции очень люблю 🙈
куда это написать? можешь полный код написать
@@ARTOMYS в последнем номере. Впиши это в функцию f, а функцию g убери.
Не только можно было, но и нужно, так как в случае с поиском маршрута из 10 в 33 все отработает и с кодом из видео, но если траектория действительно содержит 9 во втором справа разряде, например, при поиске путей из 85 в 105 рекурсивный вызов функции f(g(x), y) при условии x < y будет осуществляться бесконечно, так как при достижении значений 90:99 g(x) будет возвращать всегда сама себя и при этом это значение будет
Вернее даже не просто добавить проверку elif (x // 10) % 10 == 9, т.к. она тоже не будет решать поставленную задачу (при достижении 90 функция будет возвращать значение 0, а должна продолжить работу по маршруту +1, а, например, добавить ветвление в случай продолжения расчета, вроде
else:
if x // 10 % 10 == 9:
return f(x + 1, y)
else:
return f(x + 1, y) + f(x + 10, y)
Не всё понятно, но большое спасибо, т.к. код не сложен в написании и можно просто запомнить те моменты, которые не понял
Не нужно запоминать, нужно разбираться
У меня есть второе видео по 23-м
Его можно найти в плейлисте по первой части
а как делать число нечётным
Определить функцию! Зависит от описанного правила
сделал так: int(str(x) + '1')
Хорошо сделал 👍
435 лайков, 0 дизлайков - красноречиво говорят о видео
Сам шокирован такой статистикой))
можно было вместо f(x*10+1, y) написать f(int(str(x) +'1'), y)
можно :)
Динамикой лучше
Приведёшь пример кода?
@@ege_info а почему на "ты"?
Спасибо!
И тебе, за просмотр 😃