Обучение c# видеоуроки

Формула программиста
основатель — Волосатов Евгений Витольдович
Вступай в Телеграм чат проекта

Отзывы о вебинарах комбинаторики




Комбинаторика

Практическое знакомство с фундаментальными аспектами теории алгоритмов: рекурсия, комбинаторика, динамическое программирование, работа с графами; разбор нескольких задач по каждой теме. Рисование фракталов.

Объём: 22 видеоурока
Темы: Рекурсия, комбинаторика,
динамическое программирование, фракталы.
Срок: 30 дней.


Хочу купить!

Купить в рассрочку за мегахеши

Цена: 2000 p.


Список уроков | фото | видео

# Название видеоурока Решило Рейтинг Доступ
1 Рекурсия. Вступление 166 чел. ★ 4.7 Done
 

«Человеку свойственна итерация,
рекурсия - божественна».


Мы начнём наш курс с такой интересной и трепетной темы, как РЕКУРСИЯ.
Вокруг рекурсии ходит множество толков, загадок, непоняток и заблуждений.
Сегодня мы один раз и навсегда, просто и понятно выясним, что такое рекурсия и как её понять.

Задание:
Дать определение рекурсии своими словами.
Найти красивую и достойную картинку на тему рекурсии.

Видео на этом уроке нет.
Отчёт отправил: 6861. Den Andreevich Выполнено за 20 мин. [Показать отчёт]
Научился: Что подразумевает под собой рекурсия 
Сложности: Поиск подходящей картинки на тему рекурсии 
Комментарии: Рекурсия напоминает циклы нашей истории, когда глобальные события повторяются примерно каждые 100 лет . Движение во времени по спирали .  
2 Рекурсия. Главный секрет 00:31:52 98 чел. ★ 4.9 Done
  На вебинаре рассмотрели несколько примеров по созданию рекурсивных алгоритмов.
Рассказал основной секрет, как понимать рекурсию.

Задание:
Нарисовать кривую Гильберта на листе бумаги.
Отчёт отправил: 6861. Den Andreevich Выполнено за 30 мин. [Показать отчёт]
Научился: Ближе познакомился с рекурсией. узнал о существовании кривой Гильберта и её применении . 
Сложности: Разобраться в принципе построения кривой Гильберта на поле 16х16 . 
Комментарии: Особых замечаний нет. Волнение Евгения в конечном итоге было компенсировано поддержкой зала, что тоже немаловажно :) . Общее впечатление хорошее, настраивающее на рабочий лад . Так держать ! 
3 Рекурсия. Заливка области 00:47:23 91 чел. ★ 5 Done
  Пишем алгоритм заливки, как в программе Паинт.
Отчёт отправил: 6861. Den Andreevich Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: Ближе познакомился с рекурсией - удалось проследить её пошаговую работу. Завораживающее зрелище :) . Оценил компактность функции прорисовки fill() и создание уникального (рандомного) "лабиринта" используя ConsoleColor().  
Сложности: Пошагово отработать рекурсию в уме и понять по какому принципу выполняется заполнение "пустот" .  
Комментарии: Интересно, что будет дальше ... 
4 Рекурсия. Факториал 00:04:35 58 чел. ★ 4.9 Done
  На этом уроке мы пойдём в гости к роботу Шарпу.

Задание:
Решить задачу «Факториал».
Отчёт отправил: 6861. Den Andreevich Выполнено за 15 час. 00 мин. [Показать отчёт]
Научился: Основное условие рекурсии, её эффектность и ресурсоёмкость по сравнению с итерациями . 
Сложности: Того уже нет ) . 
Комментарии: На втором скриншоте представлен вариант рекурсии с условием if (num == 1) вместо (num <= 1) - по идее в минус уйти не должны . Однако Робот Шарп решил иначе, Тест 001 не прошёл по времени проверку . Интересно, что за тест . 
5 Рекурсия. Числа Фибоначчи 00:03:46 54 чел. ★ 5 Done
  На этом уроке мы пойдём в гости к роботу Шарпу.

Задание:
Решить задачу «Числа Фибоначчи».
Отчёт отправил: 6861. Den Andreevich Выполнено за 20 час. 00 мин. [Показать отчёт]
Научился: Узнал об ограничении в использовании рекурсии при ёмких вычислениях, познакомился с Числами Фибоначчи .  
Сложности: Разобраться с алгоритмом расчёта чисел Фибоначчи .  
Комментарии: Урок понравился . Так держать .  
6 Рекурсия. Общий делитель 00:04:08 54 чел. ★ 4.9 Done
  На этом уроке мы пойдём в гости к роботу Шарпу.

Задание:
Решить задачу «Общий делитель».
Отчёт отправил: 6861. Den Andreevich Выполнено за 15 мин. [Показать отчёт]
Научился: Использовать рекурсию для нахождения наибольшего общего делителя двух чисел. Просто и красиво . 
Сложности: Ничего 
Комментарии: Экспириенс понемногу растёт - вам большой респект :) . 
7 Рекурсия. Обратный отсчёт 00:05:52 53 чел. ★ 4.9 Done
  На этом уроке мы пойдём в гости к роботу Шарпу.

Задание:
Решить задачу «Обратный отсчёт».
Отчёт отправил: 6861. Den Andreevich Выполнено за 10 мин. [Показать отчёт]
Научился: Применению рекурсии для обратного построчного вывода вводимых чисел, заканчивающихся нулём. 
Сложности: Ничего 
Комментарии: Очередное красивое применение рекурсии.  
8 Рекурсия. Фракталы. Спираль 00:25:42 67 чел. ★ 5 Done
  На этом уроке мы сначала сделаем заготовку
для рисования линий на форме, а потом
нарисуем спираль используя рекурсию.
Потом мы её немного изменим,
чтобы наша спираль стала
настоящим фракталом.
Отчёт отправил: 6861. Den Andreevich Выполнено за 1 час. 30 мин. [Показать отчёт]
Научился: Работе с формой в плане прорисовки линий, построению простейшего фрактала/спирали с помощью рекурсии. 
Сложности: Особых сложностей не возникло. 
Комментарии: Отличный урок . Довольно большой простор для экспериментов. 
9 Рекурсия. Фракталы. Треугольник Серпинского 00:23:41 52 чел. ★ 5 Done
  На этом уроке мы будем рисовать треугольник Серпинского.
Нам опять поможет рекурсия, которая будет "тройной",
потому что на каждом следующем шаге мы
будем рисовать три новых треугольника.

Отчёт отправил: 6861. Den Andreevich Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: Формировать треугольники Серпинского с помощью рекурсии 2мя способами, рисованию на форме + панель, экспериментировать с различными параметрами. получая неожиданные результаты . 
Сложности: Особых сложностей не было. 
Комментарии: Здорово, урок понравился !  
10 Рекурсия. Фракталы. Кривая Гильберта 00:35:18 40 чел. ★ 5 Done
  На этом уроке мы нарисуем кривую Гильберта.
Да-да, ту самую, которую ты рисовал
на листике в начале курса Комбинаторика.
Мы здесь познакомимся с косвенной рекурсией,
это когда несколько функций вызывают друг друга.

Отчёт отправил: 6861. Den Andreevich Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: Применению 4х рекурсий для прорисовки кривой Гильберта, поближе познакомился с принципом построения кривой и самой рекурсией . 
Сложности: Представить в уме 'R' 'U' 'L' 'D' с учётом направления (по часовой и обратно). 
Комментарии: Отличный познавательный урок, спасибо ! ) 
11 Комбинаторика. Счастливые билеты 6 00:02:33 49 чел. ★ 4.9 Done
  На этом уроке мы рассмотрим самый простой
способ решения комбинаторных задач,
с использованием вложенных циклов.

Задание
Решить задачу «Счастливые билеты»
Отчёт отправил: 6861. Den Andreevich Выполнено за 10 мин. [Показать отчёт]
Научился: Одному из применений вложенных циклов . 
Сложности: Ничего . 
Комментарии: Коротко и ясно о счастье ) . 
12 Комбинаторика. Счастливые билеты N 00:40:51 64 чел. ★ 5 Done
  На этом уроке мы рассмотрим
два основных способа решения комбинаторных задач:
Первый способ - когда известно количество объектов - вложенные циклы.
Второй способ - любое количество объектов - использование рекурсии.

Задание:
Решить задачу «Счастливые билеты N».
Скачать книжку для чтения по комбинаторике:
Как решать комбинаторные задачи.
Отчёт отправил: 6861. Den Andreevich Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: Применению вложенных циклов при известном числе параметров и рекурсии - при неизвестном их кол-ве. 
Сложности: Вникнуть в рекурсию ) 
Комментарии: Так и не смог "обмануть" робота C# . В студии при выборе N от 1 до 5 отрабатывает на ура . Робот же - не принимает .  
13 Комбинаторика. 4 x 4. Ладья x Ферзь 00:26:01 58 чел. ★ 5 Done
  На этом уроке мы рассмотрим две шахматные задачи,
про расстановку ладьей и ферзей на доске, чтобы они не рубили друг друга.
Задачи решаются первым способом - перебор вариантов без использования рекурсии.

Задание:
Решить задачу «Четыре Ладьи».
Решить задачу «Четыре Ферзя».

Отчёт отправил: 6861. Den Andreevich Выполнено за 1 час. 30 мин. [Показать отчёт]
Научился: Находить варианты расположения 4х ферзей/ладьей на поле размером 4х4 . Использовать рекурсию для поля N ферзей/ладьей. 
Сложности: Разобрать алгоритм ) 
Комментарии: Было интересно узнать что-то новое. 
14 Комбинаторика. Много ферзей. Демонстрация 00:47:45 52 чел. ★ 5 Done
  Теперь составим программу для расстановки N ферзей на шахматной доске N x N.
Для решения этой задачи нам потребуется рекурсия.
А чтобы понять, как она работает -
сделаем визуальную демонстрацию процесса работы алгоритма.


Отчёт отправил: 6861. Den Andreevich Выполнено за 3 час. 00 мин. [Показать отчёт]
Научился: Решать задачу расстановки N ферзей на шахматной доске N x N с помощью рекурсии. 
Сложности: Распутать робота Шарпа из проводов . 
Комментарии: Довольно подробно, наглядно и доходчиво представлен пример использования комбинаторики и рекурсии .  
15 Комбинаторика. Сложение букв 00:36:25 54 чел. ★ 5 Done
  Существует серия головоломок на математическое выражение из букв, например:
ШРАМ * Ы = ШРАМЫ
БУЛОК + БЫЛО = МНОГО
Как правило в этих примерах каждой букве соответствует одна цифра.
Одинаковым буквам одинаковые цифры, разным буквам - разные цифры.
Необходимо решить эту головоломку, то есть разгадать, какой был пример.

Для решения этих задач комбинаторика так и напрашивается.
Первую задачу мы решим первым способом, через вложенные циклы.
Вторую задачу вторым способом, через рекурсию.


Отчёт отправил: 6861. Den Andreevich Выполнено за 1 час. 30 мин. [Показать отчёт]
Научился: Решению буквенных головоломок с помощью комбинаторики, вложенных циклов и конечно же божественной рекурсии . 
Сложности: Успевать за ходом мысли сенсея . 
Комментарии: Нет слов - один восторг ) ! 
16 Комбинаторика. Математические операции 00:22:34 50 чел. ★ 5 Done
  Продолжаем комбинаторную практику.
Дан ряд цифр и одно число, например:
1 2 3 4 5 6 7 8 и 100.
Расставить между цифрами знаки
"пробел", "умножить", "плюс" и "минус"
таким образом, чтобы получилось заданное число.

Отчёт отправил: 6861. Den Andreevich Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: Применению рекурсии при вычислении математических выражений, использованию блок-схем для наглядности решения задач, формированию класса по заданному в блок-схеме алгоритму. 
Сложности: Особых затруднений не было. 
Комментарии: Всем доволен . Есть над чем поработать .  
17 Полуфинальный урок. Ответы на вопросы 46 чел. ★ 4.9 Done
  Ты уже практически закончил курс «Комбинаторика».
Пожалуйста, ответь на несколько вопросов.
Эти ответы пригодятся тебе при записи видеоотзыва.
(видео в этом уроке нет)
Отчёт отправил: 6861. Den Andreevich Выполнено за 30 мин. [Показать отчёт]
Научился: На данном этапе смог на практике прочувствовать "божественность" рекурсии, в каких случаях можно и даже нужно её применять, с чего начинать формирование рекурсивной функции . Особенно впечатлили уроки "Заливка области" - интересно было наблюдать за пошаговой отработкой алгоритма, "Фракталы.Треугольник Серпинского и кривой Гильберта" - возможностью экспериментировать с различными параметрами, красотой исполнения, применением форм с прорисовкой линий, "Парад Ферзей" - запомнилась подробная проработка консольного интерфейса шахматной доски, алгоритм поиска возможного расположения ферзя на шахматной доске .  
Сложности: По времени проработки самыми сложными были задачи "Заливка области", "Фракталы.Треугольник Серпинского" Фракталы. Кривая Гильберта", "Парад Ферзей (NxN) " 
Комментарии: Так как тематика для меня совершенно новая и раньше с ней встречаться не приходилось, то замечаний, касательно изложенного материала, с моей стороны нет. Каждый из уроков "разжёван" в полной мере, а главное - есть возможность для творчества :) . Поэтому от меня сплошные плюсы . Так держать ! От себя хочу пожелать ещё больше поводов для творчества, чтобы энергии и времени хватало на всё и вся ! С уважением, Денис . 
18 Динамика. Поле дураков 00:18:40 52 чел. ★ 5 Done
  Вступление в тему "Динамическое программирование".
Решение олимпиадной задачи "Поле дураков".
Отчёт отправил: 6861. Den Andreevich Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Познакомился с динамическим программированием, нюансами его применения : по аналогии с рекурсией, начинали алгоритм с "конца" и далее итерациями достигли желаемого результата.  
Сложности: Особых сложностей не было. 
Комментарии: Уроком доволен . Всё прошло в лёгкой, ненавязчивой форме. 
19 Динамика. Счастливые билеты 20 00:58:04 46 чел. ★ 5 Done
  Решаем уже знакомую задачу новым способом.
Начальные данные: число N от 1 до 10.
Вывод результата: количество 2N-значных счастливых билетов.
Работает - моментально!

Рекомендую ознакомиться с публикациями на эту же тему:
http://www.sql.ru/forum/932580/posobie-dlya-studentov-i-shkolnikov?mid=15179128#15179128
https://goo.gl/RyNCXH


Отчёт отправил: 6861. Den Andreevich Выполнено за 3 час. 00 мин. [Показать отчёт]
Научился: Очередному , тоже эффектному плюс и быстрому варианту решения комбинаторных задач. 
Сложности: Реализовать в коде домашнее задание динамическим методом - алгоритм на бумаге составлен .с реализацией пока туго. В итоге воспользовался итерациями .  
Комментарии: Благодарю за урок - впечатление оставил довольно яркое. Долгое время носился с возможной реализацией домашнего задания с последовательностью "59" . Свою задумку пока реализовать не получилось, поэтому воспользовался итерациями. 
20 Динамика. Выход из Лабиринта 00:59:02 44 чел. ★ 5 Done
  Мы рассмотрим наиболее популярный, интересный и полезный алгоритм теории графов:
Поиск кратчайшего пути в графе. В основе идеи лежит принцип динамического программирования.

В качестве графа у нас будет Лабиринт, мы будем в нём искать кратчайший путь из одной клетки в другую.

Прошу перед уроком ознакомиться со следующими материалами:
1. Очередь в C#.
2. Поиск в ширину в графе.
Отчёт отправил: 6861. Den Andreevich Выполнено за 3 час. 00 мин. [Показать отчёт]
Научился: С помощью динамического программирования находить кратчайший путь в графе, применению очереди Queue() на практике.  
Сложности: Много времени ушло на переход от очереди к массиву. В итоге смог реализовать алгоритм поиска пути через массив с последующим выводом в другом цвете предварительно сохранённых структур . Однако кратчайший путь в графе окрасить пока не удалось (окрашиваются все элементы) - нужна реализация алгоритма поиска данного пути (на примере урока "Волны в шариках" с которым я пока не знаком).  
Комментарии: Впечатления урок оставил яркие. Многократно прогонял пошагово некоторые части кода - помогло прояснить работу алгоритма. 
21 ФИНАЛЬНЫЙ УРОК 00:23:23 31 чел. ★ 4.9 Done
  Задание
Записать видео обзор твоих лучших программ этого курса.

Отчёт отправил: 6861. Den Andreevich Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Формировать видеообзор своей программы и выкладывать его на YouTube . 
Сложности: Сохранять спокойствие при записи ролика ). 
Комментарии: Спасибо за шаблон подготовки видеороликов - пригодиться однозначно !  
Видеообзор: https://youtu.be/Vxp9-tpFcUg
22 VIP. Простые числа. Оптимизация алгоритма 01:19:28 37 чел. ★ 5 Done
  Пишем функцию для поиска простых чисел и
поэтапно оптимизируем её в двух направлениях.
Отчёт отправил: 6861. Den Andreevich Выполнено за 3 час. 00 мин. [Показать отчёт]
Научился: Ознакомился с различными алгоритмами поиска простых чисел , сравнением их скорости отработки в ед. времени , составлением функций по проверке отработки данных алгоритмов .  
Сложности: Самостоятельно реализовать алгоритм Эратосфена. 
Комментарии: Довольно объёмный урок в плане представленных алгоритмов - отличная возможность прокачивать свои навыки . В общем и в целом курс Комбинаторики запомнился своей многогранностью, интересными задачами и методами их решения . Здорово , нечего добавить !  
  Итого:   22 видеоурока общей продолжительностью 9 час. 57 мин. 23 чел. ★ 4.96  
  Финалисты:   Елена,   alexmail19Q,   Максим Лапшинов,   Андрей Поляков,   Vera,   Иван,   Артём,   Tekashnik,   Михаил Ермишин,   Николай,   Alcatraz,   Den Andreevich,   Дмитрий,   Иван Воронин,   Алексей В.,   Новопашин Владимир,   Сергей Зулкарнаев,   Алексей Малышев,   Александр,   Sergio,   Сергей Стефаненко,   Денис,   chokayes .

Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Я уже записывал видео обзор своей программы-реализации про расстановку ферзей, и по скольку эта программа мне по душе, то я ее сюда и выложу)
Трудности: Сложностей не было



Научился: описывать словами финальный видео урок
Прошу меня простить за то, что видео не будет, время у меня позднее и чтобы никого не разбудить, приходится писать. Курс очень понравился, в частности заливка области, треугольник Серпинского, кривая Гильберта и алгоритм поиска в ширину. Здорово что программы составлены так, что можно визуально посмотреть как работают алгоритмы. Это наглядно и очень помогает пониманию такой непростой темы как Комбинаторика