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

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

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



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

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

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


5,000 руб. АКЦИЯ!


Для подписки на пакет необходимо авторизоваться.

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

# Название видеоурока Решило Рейтинг Доступ
1 Рекурсия. Вступление 147 чел. ★ 4.7 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 30 мин. [Показать отчёт]
Научился: Неожиданно обнаружил, что на первый взгляд циклы можно спутать с рекурсией. (Раньше не задумывался об этом) 
Сложности: Придумать свои "определения" 
Комментарии: Рекурсия - та же математическая индукция. Рекурсия - правило, состоящее из двух частей: - правило перехода от более сложной ситуации к более простой, гарантированно приводящее к известному частному случаю (через конечное число шагов); - правило, явно определяющее результат (ответ) для этого частного случая, защищающее от бесконечного зацикливания. Рекурсия - "самоподобное" правило, с конечной глубиной вложенности. (Фрактальный вариант) 
2 Рекурсия. Главный секрет 00:31:52 82 чел. ★ 4.8 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Рисовать кривую Гильберта) 
Сложности: Пока ничего 
Комментарии: Понравился вывод чисел "задом наперёд" 
3 Рекурсия. Заливка области 00:47:23 72 чел. ★ 5 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 1 час. 30 мин. [Показать отчёт]
Научился: Рекурсия - это удобно и красиво, но использовать её нужно с осторожностью и только там, где это оправданно. 
Сложности: Закончить экспериментировать с программой.) 
Комментарии: Мне кажется, что эта программа в полной мере позволяет оценить именно красоту и "магию" рекурсии. Так что я даже сегодня решил на уроке информатики в 8 классе, забегая вперёд, с её помощью познакомить учеников с рекурсией: дать самое общее представление о ней, но, в первую очередь - ЗАИНТЕРЕСОВАТЬ детей! И, кажется, эффект был...))) 
4 Рекурсия. Факториал 00:04:35 44 чел. ★ 4.9 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 10 мин. [Показать отчёт]
Научился: Всё знакомо! 
Сложности: Ничего! 
Комментарии: Всё понятно! 
5 Рекурсия. Числа Фибоначчи 00:03:46 40 чел. ★ 5 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 10 мин. [Показать отчёт]
Научился: Всё уже знал...) 
Сложности: Ничего! 
Комментарии: Хороший пример неэффективного рекурсивного алгоритма! 
6 Рекурсия. Общий делитель 00:04:08 40 чел. ★ 4.9 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 24 час. 00 мин. [Показать отчёт]
Научился: Искать разные способы решения одной задачи. 
Сложности: Минимизировать время работы программы, не изменяя алгоритма. Пока не смог. 
Комментарии: Со скоростью работы программы осталось много непонятных моментов, с которыми постараюсь разобраться. В частности, при вычислении НОД(33333333, 1111) программа зависает, если вместо if (a>b) return NOD(a-b,b); написать { long c = a-b; ... if (a>b) return NOD(c,b); 
7 Рекурсия. Обратный отсчёт 00:05:52 39 чел. ★ 4.9 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 10 мин. [Показать отчёт]
Научился: Ничему. 
Сложности: Ничего.) 
Комментарии: Всё хорошо! 
8 Рекурсия. Фракталы. Спираль 00:25:42 53 чел. ★ 5 Open
9 Рекурсия. Фракталы. Треугольник Серпинского 00:23:41 38 чел. ★ 5 $
10 Рекурсия. Фракталы. Кривая Гильберта 00:35:18 26 чел. ★ 5 $
11 Комбинаторика. Счастливые билеты 6 00:02:33 35 чел. ★ 4.9 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 10 мин. [Показать отчёт]
Научился: При решении объёмных задач нужно помнить, что очевидный алгоритм не всегда является оптимальным. 
Сложности: Ничего! 
Комментарии: Если бы в плане самостоятельной работы не увидел явно пункт по оптимизации, вряд ли бы сам обратил внимание на эту "мелочь"... Всего-то в 10 раз больше итераций...)) Спасибо! 
12 Комбинаторика. Счастливые билеты N 00:40:51 50 чел. ★ 5 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 3 час. 00 мин. [Показать отчёт]
Научился: Работе с массивами, решил задачу в общем виде. 
Сложности: Решить математически. Здесь уже не рекурсия, иначе программа будет работать очень долго. 
Комментарии: Всё-таки, решил сделать программу, решающую задачу для довольно больших N. class Program { static void Main(string[] args) { long[] sum, sum2; long S = 0; int N; N = int.Parse(Console.ReadLine()); sum = new long[9 * N + 1]; sum2 = new long[9 * N + 1]; for (int i = 0; i <= 9*N; ++i) sum[i] = 0; for (int i = 0; i <= 9; ++i) { sum[i] = 1; sum2[i] = 1; } if (N > 1) for (int k = 2; k <= N; ++k) { for (int i = 0; i <= 9 * k; ++i) { switch (i) { case 0: sum[i] = 1; break; case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: sum[i] += sum[i - 1]; break; case 10: sum[i] += sum[i - 1] - sum[i - 10]; break; default: sum[i] += sum[i - 1] - sum2[i - 10]; break; } Console.Write("{0,2:D}, ", sum[i]); } sum.CopyTo(sum2, 0); Console.WriteLine(); Console.WriteLine(); } for (int i = 0; i <= 9 * N; ++i) S += sum[i] * sum[i]; Console.WriteLine(S); Console.ReadKey(); //for (int a = 0; a < 10; ++a) // for (int b = 0; b < 10; ++b) // for (int c = 0; c < 10; ++c) // for (int d = 0; d < 10; ++d) // for (int e = 0; e < 10; ++e) // for (int f = 0; f < 10; ++f) // if (a + b + c == d + e + f) // console.writeline("{0} {1} {2} {3} {4} {5}", a, b, c, d, e, f); } }  
13 Комбинаторика. 4 x 4. Ладья x Ферзь 00:26:01 45 чел. ★ 5 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 1 час. 00 мин. [Показать отчёт]
Научился: - 
Сложности: Хотелось для ферзей написать программу с понятной логикой работы. На это потратил большую часть времени. Получилось или нет - узнаю, когда сравню решение с видеоуроком и другими решениями... 
Комментарии: Такие задачи решать интересно!!! 
14 Комбинаторика. Много ферзей. Демонстрация 00:47:45 42 чел. ★ 5 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 24 час. 00 мин. [Показать отчёт]
Научился: Хорошо работать с консолью 
Сложности: Найти время для доработки программы, чтобы она выводила результаты так же, как в видеоуроке. 
Комментарии: Всё отлично! 
15 Комбинаторика. Сложение букв 00:36:25 44 чел. ★ 5 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 3 час. 00 мин. [Показать отчёт]
Научился: Договариваться с Роботом-Шарпом и вникать в тонкости рекурсии. 
Сложности: МНОГО (БЫЛО БУЛОК) 
Комментарии: 1. Долго не мог понять, почему зависает Робот-Шарп. Выяснилось, что забыл вводить его начальные данные. 2. Перебор вариантов у меня начинался с первой цифры первого слагаемого - отсюда ошибки в примерах 3 и 4 или при переборе всех варианотв "вылет" по таймауту. Понял это только тогда, когда "подсунув" Шарпу правильные ответы, смог просмотреть решения остальных участников и... не найти в них ничего нового. Скопировал одно из решений себе, запустил... все результаты "ВЕРНО"! Вот тут, наконец, всё и разъяснилось.))) 
16 Комбинаторика. Математические операции 00:22:34 40 чел. ★ 5 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 3 час. 00 мин. [Показать отчёт]
Научился: Узнал, как можно организовать вычисление выражений, содержащих действия с разным приоритетом. Ещё раз проработал рекурсию. 
Сложности: Всё было понятно! 
Комментарии: Насколько я понял, для любого такого калькулятора размер стека операций должен быть не меньше числа рангов (разных приоритетов) операций, не считая операции "=" с её низшим "нулевым". Для "нашего" примера всё работало при размерности 3.  
17 Полуфинальный урок. Ответы на вопросы 37 чел. ★ 4.8 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 15 мин. [Показать отчёт]
Научился: Подвёл итоги по пройденной части курса. 
Сложности: Здесь ничего. 
Комментарии: 1. Больше всего понравились задача с ферзями (для N) и калькулятор. Ещё алгоритм заливки очень красив! Трудно из них выбрать лучший... 2. Да. Всё-таки, подход к решению комбинаторных задач математика и программиста заметно отличаются. Математический я знал, а вот со вторым хорошо познакомился в этом курсе. 3. Пока нет. 4. Самым ценным, наверное, оказался алгоритм калькулятора (принципиально новый для меня). 5. Лузум Сергей. 
18 Динамика. Поле дураков 00:18:40 38 чел. ★ 5 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Очевидное (шаблонное) решение далеко не всегда будет лучшим. 
Сложности: Будет. Найти ошибку в своём рекурсивном алгоритме. Приведённый пример решает верно, а неизвестный "тестовый 0" - неверно. 
Комментарии: Получилось, что два раза решал задачу. Сначала написал свою программу, которая застопорилась на первом же тесте, а потом по уроку сделал второй вариант. Было бы неплохо увидеть начальные данные теста, чтобы найти ошибку в своём варианте. 
19 Динамика. Счастливые билеты 20 00:58:04 35 чел. ★ 5 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 5 час. 00 мин. [Показать отчёт]
Научился: Узнал, в чём заключается идея динамического программирования. 
Сложности: Самому решить задачу "математически" - из указанных 5 часов, пожалуй, часа 3 - 4 ушло на решение задачи в общем виде. 
Комментарии: Всё отлично!!! Только рискну решение задачи в Excel-e выложить в своём варианте - вдруг, кому-то будет интересно? (Пока придумывал алгоритм, тоже решил использовать Excel для проверки разных способов). Отличие моего решения только формальное (коротко описал в отзыве к вебинару).  
20 Динамика. Выход из Лабиринта 00:59:02 34 чел. ★ 5 Done
  Отчёт отправил: 7980. Сергей Лузум Решено за 2 час. 00 мин. [Показать отчёт]
Научился: 1. Освоил алгоритм поиска в ширину. 2. Приобрёл опыт работы с очередью. 
Сложности: Ничего!) 
Комментарии: Очень интересный и понятный урок!) 
21 ФИНАЛЬНЫЙ УРОК 00:23:23 23 чел. ★ 4.9 Open
22 VIP. Простые числа. Оптимизация алгоритма 01:19:28 31 чел. ★ 5 $
  Итого:   22 видеоурока общей продолжительностью 9 час. 57 мин. 17 чел. ★ 4.95  
  Финалисты:   Елена,   alexmail19Q,   Максим Лапшинов,   Андрей Поляков,   Vera,   Иван,   Артём,   Tekashnik,   Михаил Ермишин,   Николай,   Alcatraz,   Den Andreevich,   Дмитрий,   Иван Воронин,   Ильшат,   Алексей В.,   Новопашин Владимир .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Трудности: видео отзыв
До 14-го не успел
Научился: Я уже стала меньше бояться записывать видео обзоры)
Трудности: Ничего
Курс очень классный!!!!!!!!!!!!!!!!!!!!! До его прохождения я не знала, что такое рекурсия, динамическое программирование, как решать задачки по динамике, комбинаторике и рекурсии... Я очень рада, что прошла этот курс: очень много знаний приобрела на нем))) Спасибо большое, Евгений Витольдович за этот курс!!! : )
Смотреть видеозапись: https://youtu.be/DcDBx1tJQOc