Впервые узнал о динамическом программировании. Скорость алгоритма поражает! Еще посмотрю несколько раз для наилучшего понимания.
Понравился наглядный пример в Excel, так интереснее и понятней стало.
Хорошая, доходчивая демонстрация алгоритма с помощью excel
Очень понравилось подробное объяснение принципов динамического программирования при помощи Excel, а счастливые билеты - тема, по-моему, вообще неисчерпаемая. Существует много способов решения этой задачи, но этот алгоритм поражает своей эффективностью и быстротой.
Понравились подробные разъяснения Комбинаторики и Динамического программирования, получил опыт работы с программой Excel, особенно понравилось решение задачи "Динамика / Счастливые билеты 20" двумя вариантами в VS и в Excel, нравится разносторонний подход к решении задач.
Комбинаторика рулит! Очень полезно и познавательно. Огромное спасибо автору за дотошный разбор каждого элемента - схемы, рисунки, расчеты в Excel! Автор искренне переживает за успех обучающихся - это очень приятно!
каждый раздел комбинаторики по своему хорош, каждый решает свои задачи лучше, отличный курс, хотелось бы побольше подобных курсов с применением на практике, очень порадовало динамическое программирование, реально экономит время и ресурсы при вычислениях
Комбинаторика по своей сути меня поразила своей простотой и малым количеством текста программ при большой эффективности. Буду стараться применять алгоритмы этого курса в разработках своих программ. Благодарю за курс.
Очень наглядная демонстрация алгоритма перед написанием кода, помогает понять непростую тему. Надеюсь, в будущем смогу где-нибудь к месту применить подход динамического программирования)
Урок приоткрыл вершину айсберга : тема динамического программирования довольно интересная, открыла новые возможности при рассмотрении комбинаторных задач - главное уметь их рассмотреть . Результат поразил своей эффектностью так же как и первое знакомство с рекурсией, плюс время исполнения алгоритма порадовало .
Урок просто замечательный!!! Поначалу я вообще почти ничего не понимала, но когда написала задачку в Excel, стало все понятнее)) Программа работает ооооочень быстро, даже не ожидала, что она так может) В уроке всё очень подробно и понятно объяснено)) Спасибо!!! : )
Всё очень понятно и логично! Узнал, в чём заключается идея динамического программирования. Сам пришёл практически к этому же решению, когда пытался самостоятельно написать программу для 10-значных чисел (искал решение в общем виде). Только я вместо 10-кратной перезаписи строк и сложения сразу стал складывать для каждой подсуммы (которых 9*N) по 10 (или меньше) подсумм для (N-1) - варианта. Получилось не так наглядно для понимания и с большим количеством особенностей при программировании. А вариант, рассмотренный на вебинаре, кажется, предельно наглядный!) Спасибо!
Увидел другое решение задачи поиска счастливых билетов. Да, работает быстрее, но само решение не совсем понятное, закрученное, демонстрация в Excel сначала ввела в ступор. Лесенки, массивы, сумма лесенки, почему именно так и как здесь происходит переход на N + 1? Не все было очевидно. Повторный полный просмотр видеоурока расставил все на свои места. Не сказал бы, что сложный урок, но требует большого внимания и открывает новые возможности в программировании, оптимизации, спасибо :)
Я раньше что то подобное делал, находил закономерноси и реализовывал их, а теперь я узнал, что аж называется динамическое программирование, и что у него есть даже системный подход. Хочу сказать что это очень элегантный и незаменимы способ программмирование. Спасибо за освещение этого нужного и важного вопроса в программировании
Еще раз убедился что для решения одной задачи существует не одно решение, но как оказалось не все варианты оптимальные но данный урок показал самую малую сложность алгоритма
Отличный урок! Очень понравился! Алгоритм работает очень быстро и это не может не радовать. Сам бы до такого хорошего решения может и не додумался бы :~)
Хороший урок. Алгоритм действительно весьма быстрый.
Перед вебинаром долго сидел, думал над своим решением задачи, тоже частично задействовал динамику, но работало медленнее.
Прекрасный алгоритм, вебинар как всегда на высоте. Понятно, что откуда взялось и для чего. Согласна с тем, что пока сложно своим мозгом прийти к подобному решению, поэтому следует потренироваться на решении задачи на дом.
Отличный урок. Удивительная скорость работы алгоритма. Думаю, что подобные алгоритмы ещё не раз сослужат добрую службу при решении более сложных задач.
Скорость работы алгоритма поражает. Вопрос больше другой как прийти к такому решению, я пока не знаю. Очень понравилось объяснение алгоритма с использованием excel;
Алгоритм очень интересный и очень красивый. Очень все понятно объяснили, спасибо большое. Читал ранние отзывы, и считаю, что тут будет все понятно любому, кто хорошо проработал раздел Консоль.
Красивый алгоритм, мне к сожалению ещё далеко до такого(( Вебинары очень хороши! Большое Спасибо Евгению!
Алгоритм простой, короткий и понятный! Спасибо Евгению за понимание, за труд и терпение....
Все сильнее становлюсь поклонником Вашего способа выкладания.
Отличный вебинар! Доступное объяснение, интересная задача и простой алгоритм!
Хороший вебинар, здорово демонстрирует простое и очень эффективное решение.
Алгоритм проверял в ОпенОфисе - всё работает и там.
На вебинар я опоздал, смотрел в записи. Но все равно было интересно и много что понял. Очень понравилась идея с составлением алгоритма в экселе (сам часто в нем работаю), потом легче писать программу. Еще думаю было бы эффективно к каждой программе сделать пункт - составление блок-схемы (самостоятельно) + скриншот.
Суть динамического программирования стала понятней, хотя было немного трудно.
Большое спасибо, много интересной информации, все здорово
Только просмотрел 2 Вебинар по комбинаторике. Очень понравился подход решения. Спасибо большое. Все предельно просто.
Занимаюсь c# полгода, благодаря Вашему сайту и вебинарам понимаю, что польза их очевидна, а самое главное, чувствую, что здесь есть поддержка, спасибо. По поводу проведения вебинаров хочу сказать следующее, проводите их так, как считаете нужным, это Ваша методика - и она работает, даже если что-либо слушателям не понятно во время вебинара, то это - не страшно, можно разобраться в свое свободное время, и пересмотреть запись. Уж слишком ценно само время занятий, при заданном темпе Вы даете больше информации.
Интересный вебинар по рассмотрению достаточного интересного комбинаторного алгоритма. Решение элегантное и достаточно простое.
Всё очень доступно и хорошо объяснено!! Спасибо большое !!
Задал я себе такой вопрос: почему вы решили провести дополнительный вебинар?
Я рассуждал я так:
1. есть желание его провести и есть время. - но скорее нет.
2. наверное из-за того, что платное, дополнительная ответственность.
Но тут есть большое НО. Нужно трезво оценивать свои способности.
и если ты вдруг захотел стать бизнесменом - при этом нихера не понимая - тебе за 2 часа - никто ничего не объяснит ни на каком вебинаре.
поэтому заплатил - готовь впитывать инфу определенного уровня. не пошла инфа - значит не дорос - или пересматривай и вникай
Ну и по скорости - те отзывы которые я видел - пишут про темп вебинара.
я уж не стал писать, опять таки списывая на то, что можно пересмотреть.
но по факту, действительно выглядит так:
ЕВ: (вслух) так. вот сейчас тут мы пишем консоль. риадлайн, и добавляем то, что у нас было тут (дальше молча пишутся какие-то параметры). (потом опять вслух) вот тут еще пишем риадкей. ВСЁ! готово! давайте проверим.
Такой вариант для новчика не ясен.
Ясен был бы такой вариант:
ЕВ: вот тут мы должны написать консоль. реадлайн, потому-что.....
и в параметры мы добавляем вот этот параметр, который у нас отвечает за ....
и взяли мы его из.... т.к. он нам нужен, для того чтобы....
ну и т д, т.е. конкретика действий. что для вас очевидно - то для многих - темный лес.
и... Больше отладки, больше пошагового выполнения с комментированием происходящего и очередными объяснениями почему и зачем происходит всё именно так.
Доброй времени суток.
Торопясь глянул видеозапись.
Что могу сказать по поводу этого вебинара... и какие советы можно дать в общем...
Сначала хочу поблагодарить Вас, Евгений. Вебинар был очень интересен и полезен.
1. Лично мне были непонятны алгоритмы, связанные с шахматами. И главная причина этому - я не помню правила этой игры. Я Вам уже ранее говорил, что в подобных случаях стОит говорить, что это за игра, её правила и прочее.
Думаю, если я поковыряюсь в интернете, разберусь как ходит ферзь, слон и прочие фигуры, то алгоритмы мне станут понятны (не с первого раза, может быть, но запись-то есть).
2. Возможно, стОит ЧАЩЕ объяснять почему Вы пишете именно то, что Вы пишете, как это будет работать на практике. Больше конкретных примеров.
3. Возможно, стОит больше делать переходов с объяснения общего случая на объяснение конкретных случаев и обратно, несколько раз. Т.е. чередовать дедуктивный и индуктивный методы по несколько раз на объяснение одной вещи. Одним людям проще понимать одно, другим - другое. Да и это позволит перепроверить понимание. Должно быть много как абстракций, так и конкретных примеров.
3. Если затрагиваются оптимизации алгоритмов (а их важно затрагивать), то стОит подробнее объяснять почему это будет работать и не хуже. У меня проблем особых с этим не возникло, но чувствовалась некая скомканность объяснения. Изначально были неочевидны некоторые оптимизации. Опять же: обилие конкретных примеров и общего случая.
4. Возможно, стОит помедленнее писать код (да и вести вебинар в целом). Сначала объяснять на словах что необходимо сделать и почему, потом как это можно вычислить на словах (без программистских терминов, как ребёнку объяснять), а только потом очередной кусок кода.
Рекурсия и комбинаторика - это не тот код, посмотря на который, можно мгновенно глубоко понять, прочувствовать (что важно) как он работает.
Ричман, спасибо за отзыв.
Консольные задачи из раздела "Рекурсия" и "Комбинаторика"
доступны каждый день, а не только по средам.
Добрый вечер, Евгений.
Вопросы не задавал во время вебинара, так как своим недопониманием не хочется тормозить
процесс хода вебинара. Я только начинаю вникать в программирование, вебинары использую как возможность просто узнать о существовании чего-либо в программировании. Писать код параллельно как-то пытался, но мне не успеть и я прекратил эти "догонялки" - просто смотрю и стараюсь вникнуть. Конечно, в среду не всё было ясно, но общий ход мысли улавливается чётко, примеры впечатляют своей наглядностью - это стимулирует к дальнейшей работе. Видеозапись повторно ещё не смотрел - сегодня только начал проникаться рекурсией и выполнил "Главный секрет рекурсии", хорошо, что доступ был открыт и в четверг для задач про Фибоначчи и других. То, что консольные задачи ограничили только средой - всё же слишком жёстко для меня, не успел дорешать прежние задачи (утром на работу, в 19:30 только домой попал, передохнул и вебинар уже на подходе, за час перед вебинаром одну задачку решить успел и одну прогнал с Роботом Шарпом, заготовленную предварительно на работе). Дополнительный урок пока не нужен - хотел бы "переварить" уже полученную информацию, дойти до рекурсивной заливки и разобраться с ней, поэкспериментировать, потом пересмотреть вебинар про комбинаторику с ферзями и ладьями :-)
Что бы мне хотелось поменять? Может быть чуть снизить темп вебинара, пусть в ущерб количеству примеров. Но это, возможно, только у меня такая заторможенность и "непоспевайка" :-)
Вебинар понравился. Порадовало наличие разнообразных примеров.
# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 | Рекурсия. Вступление |
без видео 2 теста |
|||
«Человеку свойственна итерация, Мы начнём наш курс с такой интересной и трепетной темы, как РЕКУРСИЯ. Вокруг рекурсии ходит множество толков, загадок, непоняток и заблуждений. Сегодня мы один раз и навсегда, просто и понятно выясним, что такое рекурсия и как её понять. Задание: Дать определение рекурсии своими словами. Найти красивую и достойную картинку на тему рекурсии. Видео на этом уроке нет. |
|||||
2 | Рекурсия. Главный секрет |
3 теста |
|||
На вебинаре рассмотрели несколько примеров по созданию рекурсивных алгоритмов. Рассказал основной секрет, как понимать рекурсию. Задание: Нарисовать кривую Гильберта на листе бумаги. |
|||||
3 | Рекурсия. Заливка области |
1 тест |
|||
Пишем алгоритм заливки, как в программе Паинт. | |||||
4 | Рекурсия. Факториал |
1 тест |
|||
На этом уроке мы пойдём в гости к роботу Шарпу. Задание: Решить задачу «Факториал». |
|||||
5 | Рекурсия. Числа Фибоначчи |
1 тест |
|||
На этом уроке мы пойдём в гости к роботу Шарпу. Задание: Решить задачу «Числа Фибоначчи». |
|||||
6 | Рекурсия. Общий делитель |
1 тест |
|||
На этом уроке мы пойдём в гости к роботу Шарпу. Задание: Решить задачу «Общий делитель». |
|||||
7 | Рекурсия. Обратный отсчёт |
1 тест |
|||
На этом уроке мы пойдём в гости к роботу Шарпу. Задание: Решить задачу «Обратный отсчёт». |
|||||
8 | Рекурсия. Фракталы. Спираль |
|
|||
На этом уроке мы сначала сделаем заготовку для рисования линий на форме, а потом нарисуем спираль используя рекурсию. Потом мы её немного изменим, чтобы наша спираль стала настоящим фракталом. |
|||||
9 | Рекурсия. Фракталы. Треугольник Серпинского |
1 тест |
|||
На этом уроке мы будем рисовать треугольник Серпинского. Нам опять поможет рекурсия, которая будет "тройной", потому что на каждом следующем шаге мы будем рисовать три новых треугольника. |
|||||
10 | Рекурсия. Фракталы. Кривая Гильберта |
1 тест |
|||
На этом уроке мы нарисуем кривую Гильберта. Да-да, ту самую, которую ты рисовал на листике в начале курса Комбинаторика. Мы здесь познакомимся с косвенной рекурсией, это когда несколько функций вызывают друг друга. |
|||||
11 | Комбинаторика. Счастливые билеты 6 |
1 тест |
|||
На этом уроке мы рассмотрим самый простой способ решения комбинаторных задач, с использованием вложенных циклов. Задание Решить задачу «Счастливые билеты» |
|||||
12 | Комбинаторика. Счастливые билеты N |
1 тест |
|||
На этом уроке мы рассмотрим два основных способа решения комбинаторных задач: Первый способ - когда известно количество объектов - вложенные циклы. Второй способ - любое количество объектов - использование рекурсии. Задание: Решить задачу «Счастливые билеты N». Скачать книжку для чтения по комбинаторике: Как решать комбинаторные задачи. |
|||||
13 | Комбинаторика. 4 x 4. Ладья x Ферзь |
1 тест |
|||
На этом уроке мы рассмотрим две шахматные задачи, про расстановку ладьей и ферзей на доске, чтобы они не рубили друг друга. Задачи решаются первым способом - перебор вариантов без использования рекурсии. Задание: Решить задачу «Четыре Ладьи». Решить задачу «Четыре Ферзя». |
|||||
14 | Комбинаторика. Много ферзей. Демонстрация |
|
|||
Теперь составим программу для расстановки N ферзей на шахматной доске N x N. Для решения этой задачи нам потребуется рекурсия. А чтобы понять, как она работает - сделаем визуальную демонстрацию процесса работы алгоритма. |
|||||
15 | Комбинаторика. Сложение букв |
1 тест |
|||
Существует серия головоломок на математическое выражение из букв, например: ШРАМ * Ы = ШРАМЫ БУЛОК + БЫЛО = МНОГО Как правило в этих примерах каждой букве соответствует одна цифра. Одинаковым буквам одинаковые цифры, разным буквам - разные цифры. Необходимо решить эту головоломку, то есть разгадать, какой был пример. Для решения этих задач комбинаторика так и напрашивается. Первую задачу мы решим первым способом, через вложенные циклы. Вторую задачу вторым способом, через рекурсию. |
|||||
16 | Комбинаторика. Математические операции |
1 тест |
|||
Продолжаем комбинаторную практику. Дан ряд цифр и одно число, например: 1 2 3 4 5 6 7 8 и 100. Расставить между цифрами знаки "пробел", "умножить", "плюс" и "минус" таким образом, чтобы получилось заданное число. |
|||||
17 | Полуфинальный урок. Ответы на вопросы |
без видео |
|||
Ты уже практически закончил курс «Комбинаторика». Пожалуйста, ответь на несколько вопросов. Эти ответы пригодятся тебе при записи видеоотзыва. (видео в этом уроке нет) |
|||||
18 | Динамика. Поле дураков |
1 тест |
|||
Вступление в тему "Динамическое программирование". Решение олимпиадной задачи "Поле дураков". |
|||||
19 | Динамика. Счастливые билеты 20 |
1 тест |
|||
Решаем уже знакомую задачу новым способом. Начальные данные: число N от 1 до 10. Вывод результата: количество 2N-значных счастливых билетов. Работает - моментально! Рекомендую ознакомиться с публикациями на эту же тему: http://www.sql.ru/forum/932580/posobie-dlya-studentov-i-shkolnikov?mid=15179128#15179128 https://goo.gl/RyNCXH |
|||||
20 | Динамика. Выход из Лабиринта |
1 тест |
|||
Мы рассмотрим наиболее популярный, интересный и полезный алгоритм теории графов: Поиск кратчайшего пути в графе. В основе идеи лежит принцип динамического программирования. В качестве графа у нас будет Лабиринт, мы будем в нём искать кратчайший путь из одной клетки в другую. Прошу перед уроком ознакомиться со следующими материалами: 1. Очередь в C#. 2. Поиск в ширину в графе. |
|||||
21 | ФИНАЛЬНЫЙ УРОК |
|
|||
Задание Записать видео обзор твоих лучших программ этого курса. |
|||||
22 | VIP. Простые числа. Оптимизация алгоритма |
1 тест |
|||
Пишем функцию для поиска простых чисел и поэтапно оптимизируем её в двух направлениях. |
|||||
Итого: 22 видеоурока |
9 час. 57 мин. 21 тест |
29 чел. | |||
Финалисты: Елена, alexmail19Q, Максим Лапшинов, Андрей Поляков, Vera, Иван, Артём, Tekashnik, Михаил Ермишин, Николай, Alcatraz, Den Andreevich, Дмитрий, Иван Воронин, Алексей В., Новопашин Владимир, Сергей Зулкарнаев, Алексей Малышев, Александр, Sergio, Сергей Стефаненко, Денис, chokayes, ser2018, Дмитрий, Илья, Яков, MaxB, Tim . |