# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
без видео 2 теста |
|||
«Человеку свойственна итерация, Мы начнём наш курс с такой интересной и трепетной темы, как РЕКУРСИЯ. Вокруг рекурсии ходит множество толков, загадок, непоняток и заблуждений. Сегодня мы один раз и навсегда, просто и понятно выясним, что такое рекурсия и как её понять. Задание: Дать определение рекурсии своими словами. Найти красивую и достойную картинку на тему рекурсии. Видео на этом уроке нет. Отчёт отправил: 6925. Артём Выполнено за 15 мин. [Показать отчёт] Научился: Рекурсией называется такая конструкция, при которой функция вызывает саму себя. Сложности: найти картинки:) Комментарии: повторение - мать учения :) |
|||||
2 |
![]() |
3 теста |
|||
На вебинаре рассмотрели несколько примеров по созданию рекурсивных алгоритмов. Рассказал основной секрет, как понимать рекурсию. Задание: Нарисовать кривую Гильберта на листе бумаги. Отчёт отправил: 6925. Артём Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Понял всю прелесть рекурсии, достоинства и недостатки. Сложности: Понять алгоритм рисования кривой Гильберта. Комментарии: С рекурсией интересно работать :) |
|||||
3 | Рекурсия. Заливка области |
1 тест |
|||
Пишем алгоритм заливки, как в программе Паинт.
Отчёт отправил: 6925. Артём Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Закрепил знания по рекурсии Сложности: Немного сложно было с массивом цветов разобраться. Комментарии: Вот на таких примерах интересно рекурсию изучить :) |
|||||
4 | Рекурсия. Факториал |
1 тест |
|||
На этом уроке мы пойдём в гости к роботу Шарпу. Задание: Решить задачу «Факториал». Отчёт отправил: 6925. Артём Выполнено за 10 мин. [Показать отчёт] Научился: Закрепил знания по рекурсии. Сложности: Да вроде ничего, Евгений Витольдович объяснил всё доступно. Комментарии: рекурсия - это один из фундаментов программирования, поэтому повторить её лишний раз можно и нужно. Спасибо за урок! |
|||||
5 | Рекурсия. Числа Фибоначчи |
1 тест |
|||
На этом уроке мы пойдём в гости к роботу Шарпу. Задание: Решить задачу «Числа Фибоначчи». Отчёт отправил: 6925. Артём Выполнено за 10 мин. [Показать отчёт] Научился: Закрепил знания по рекурсии и вспомнил числа Фибоначчи Сложности: Относительно просто. Комментарии: проблема в том, что чем больше число, тем дольше работать будет программа (пример на 2м скрине). Я вывел все числа Фибоначчи до 40-го через циклы: int u = 1, v = 1; // два первых числа? в дальнейшем - текущие числа for(int i=0; i<40; i++) { Console.WriteLine("{0}", u); // печатаем текущий элемент int w = u + v; // замена переменных u = v; v = w; // w - промежуточная переменная: v=u+v } Console.ReadKey(); |
|||||
6 | Рекурсия. Общий делитель |
1 тест |
|||
На этом уроке мы пойдём в гости к роботу Шарпу. Задание: Решить задачу «Общий делитель». Отчёт отправил: 6925. Артём Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Вспомнил НОД Сложности: Понять ошибку 3-го теста. Комментарии: Странно: написал всё точь-в-точь, а выдаёт ошибку переполнения стека... |
|||||
7 | Рекурсия. Обратный отсчёт |
1 тест |
|||
На этом уроке мы пойдём в гости к роботу Шарпу. Задание: Решить задачу «Обратный отсчёт». Отчёт отправил: 6925. Артём Выполнено за 10 мин. [Показать отчёт] Научился: Научился обратно выводить цифры без циклов. Сложности: Думать :) Комментарии: Недавно проходил, так что проблем не возникло :) |
|||||
8 | Рекурсия. Фракталы. Спираль |
|
|||
На этом уроке мы сначала сделаем заготовку для рисования линий на форме, а потом нарисуем спираль используя рекурсию. Потом мы её немного изменим, чтобы наша спираль стала настоящим фракталом. Отчёт отправил: 6925. Артём Выполнено за 30 мин. [Показать отчёт] Научился: Узнал о фракталах и в который раз убедился в красоте рекурсии. Сложности: Всё было понятно объяснено :) Комментарии: Эксперементировал с параметром от 60 до 200. Красотааааааа) Наверное, полностью синий квадрат будет, когда s = 1? |
|||||
9 | Рекурсия. Фракталы. Треугольник Серпинского |
1 тест |
|||
На этом уроке мы будем рисовать треугольник Серпинского. Нам опять поможет рекурсия, которая будет "тройной", потому что на каждом следующем шаге мы будем рисовать три новых треугольника. Отчёт отправил: 6925. Артём Выполнено за 30 мин. [Показать отчёт] Научился: Рисовать треугольник Серпинского, повторив рекурсию. Сложности: Понять конец рекурсии Комментарии: Треугольник Серпинского всегда вызывал у меня восторг, как и другие фрактальные фигуры:) |
|||||
10 | Рекурсия. Фракталы. Кривая Гильберта |
1 тест |
|||
На этом уроке мы нарисуем кривую Гильберта. Да-да, ту самую, которую ты рисовал на листике в начале курса Комбинаторика. Мы здесь познакомимся с косвенной рекурсией, это когда несколько функций вызывают друг друга. Отчёт отправил: 6925. Артём Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Понял алгоритм рисования кривой Гильберта. Сложности: Сложно было сначала понять функции, которые вызывают друг друга. Комментарии: Кривая очень красива :) знать бы ещё, где можно такое применить. |
|||||
11 | Комбинаторика. Счастливые билеты 6 |
1 тест |
|||
На этом уроке мы рассмотрим самый простой способ решения комбинаторных задач, с использованием вложенных циклов. Задание Решить задачу «Счастливые билеты» Отчёт отправил: 6925. Артём Выполнено за 10 мин. [Показать отчёт] Научился: Вспомнил комбинаторику Сложности: Сложно было сразу понять оптимизацию. Комментарии: Если честно, думал, что придётся решать с помощью комбинаторных формул. |
|||||
12 | Комбинаторика. Счастливые билеты N |
1 тест |
|||
На этом уроке мы рассмотрим два основных способа решения комбинаторных задач: Первый способ - когда известно количество объектов - вложенные циклы. Второй способ - любое количество объектов - использование рекурсии. Задание: Решить задачу «Счастливые билеты N». Скачать книжку для чтения по комбинаторике: Как решать комбинаторные задачи. Отчёт отправил: 6925. Артём Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Закрепил знания по рекурсии и вспомнил комбинаторику. Сложности: Догадаться до оптимизации. Комментарии: Я сделал 4 функции после каждого способа: EasyTicket() - самый простой способ перебора, Next() - первая рекурсия, NextMode() - вторая рекурсия, где последняя цифра считается по-другому и NextMode2(), где уже смотрим, куда добавляем посл. цифру. Кода много, но лучше запомнится ;) |
|||||
13 | Комбинаторика. 4 x 4. Ладья x Ферзь |
1 тест |
|||
На этом уроке мы рассмотрим две шахматные задачи, про расстановку ладьей и ферзей на доске, чтобы они не рубили друг друга. Задачи решаются первым способом - перебор вариантов без использования рекурсии. Задание: Решить задачу «Четыре Ладьи». Решить задачу «Четыре Ферзя». Отчёт отправил: 6925. Артём Выполнено за 45 мин. [Показать отчёт] Научился: Научился решать задачи о шахматных фигурах итерационным методом. Сложности: Сложностей не возникло, т.к. решал задачу о 8 ферзях на шахматном экзамене, а с 4мя более понятно. Комментарии: Вот и шахматы вспомнил :) Интересно, а шахматные задачи решать через C# можно? |
|||||
14 | Комбинаторика. Много ферзей. Демонстрация |
|
|||
Теперь составим программу для расстановки N ферзей на шахматной доске N x N. Для решения этой задачи нам потребуется рекурсия. А чтобы понять, как она работает - сделаем визуальную демонстрацию процесса работы алгоритма. Отчёт отправил: 6925. Артём Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Закрепил знания по координатам, а также углубился в теорию алгоритмов. Сложности: Не сразу понял алгоритм, а сделать в консоли такое пока мозгов не хватает... Комментарии: Урок трудный, но очень полезный! |
|||||
15 | Комбинаторика. Сложение букв |
1 тест |
|||
Существует серия головоломок на математическое выражение из букв, например: ШРАМ * Ы = ШРАМЫ БУЛОК + БЫЛО = МНОГО Как правило в этих примерах каждой букве соответствует одна цифра. Одинаковым буквам одинаковые цифры, разным буквам - разные цифры. Необходимо решить эту головоломку, то есть разгадать, какой был пример. Для решения этих задач комбинаторика так и напрашивается. Первую задачу мы решим первым способом, через вложенные циклы. Вторую задачу вторым способом, через рекурсию. Отчёт отправил: 6925. Артём Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Научился решать олимпиадные задачи с помощью рекурсии. Сложности: Немного запутался в AddLetter, но уже всё хорошо Комментарии: всё замечательно, теперь знаю, как подобное решать :) |
|||||
16 | Комбинаторика. Математические операции |
1 тест |
|||
Продолжаем комбинаторную практику. Дан ряд цифр и одно число, например: 1 2 3 4 5 6 7 8 и 100. Расставить между цифрами знаки "пробел", "умножить", "плюс" и "минус" таким образом, чтобы получилось заданное число. Отчёт отправил: 6925. Артём Выполнено за 4 час. 00 мин. [Показать отчёт] Научился: Научился решать задачи на расстановку знаков через рекурсию. Сложности: Сложно было понять блок-схему, однако после этого написать класс стало легче Комментарии: Довольно интересно, но с каждым шагом труднее) |
|||||
17 | Полуфинальный урок. Ответы на вопросы |
без видео |
|||
Ты уже практически закончил курс «Комбинаторика». Пожалуйста, ответь на несколько вопросов. Эти ответы пригодятся тебе при записи видеоотзыва. (видео в этом уроке нет) Отчёт отправил: 6925. Артём Выполнено за 5 мин. [Показать отчёт] Научился: За половину учебного курса я изучил несколько алгоритмов, с помощью которых можно решать математические задачи. Сложности: Заставить себя сидеть и не лениться. Комментарии: В течение 5 дней я прохожу курс "Комбинаторика". Я думал, что уделят внимание математическим понятиям, как "Комбинации, перестановки, факториалы" и т.д. Мои ожидания оправдались: изучив рекурсию, я изучил рекурсию :) Так вот, после изучения рекурсии я чувствовал себя, как рыба в воде, решая задачи о и другие, связанные с комбинаторикой. Однако при изучении алгоритма нахождения ферзей у меня вылезли глаза на лоб, т.к. вообще не понимал, что к чему. Немного потерял интерес, мне показались дальнейшие уроки скучными и долгими, пока не понял, что проблема в моей лени. Поэтому, через "не хочу", "не могу" сидел, слушал эти уроки и понял, что это основа для всего. Уверен, что невозможно стать хорошим программистом, не зная алгоритмов. И как-то стал лучше понимать происходящее. Поэтому алгоритм поиска ферзей я назову лучшим, который я когда-либо видел. Вот только программу консоли составить поленился :( Ну да всё впереди! А самое ценное - это то, что курс воспитывает силу воли, поэтому охотно буду продолжать его выполнять. Спасибо! С уважением, Артём Быцко. P.S. В университете нам как-то рассказывали построение графов через программы. Мне интересно, будет ли теория графов? |
|||||
18 | Динамика. Поле дураков |
1 тест |
|||
Вступление в тему "Динамическое программирование". Решение олимпиадной задачи "Поле дураков". Отчёт отправил: 6925. Артём Выполнено за 45 мин. [Показать отчёт] Научился: Познакомился с динамическим программированием. Сложности: Вспомнить, что координаты меняются слева направо и сверху вниз. Комментарии: Замечательная задача, чем-то похоже на задачу из графов по нахождению максимальной вершины или что-то такое |
|||||
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 Отчёт отправил: 6925. Артём Выполнено за 1 час. 25 мин. [Показать отчёт] Научился: Улучшил знания по динамического программированию и понял, что оно очень эффективное для решения многих комбинаторных задач. Сложности: Вроде всё понял :) Комментарии: Где-то я этот алгоритм видел уже, ибо ОООЧЕНЬ знакомые действия... Действует просто замечательно :) |
|||||
20 | Динамика. Выход из Лабиринта |
1 тест |
|||
Мы рассмотрим наиболее популярный, интересный и полезный алгоритм теории графов: Поиск кратчайшего пути в графе. В основе идеи лежит принцип динамического программирования. В качестве графа у нас будет Лабиринт, мы будем в нём искать кратчайший путь из одной клетки в другую. Прошу перед уроком ознакомиться со следующими материалами: 1. Очередь в C#. 2. Поиск в ширину в графе. Отчёт отправил: 6925. Артём Выполнено за 4 час. 00 мин. [Показать отчёт] Научился: Узнал об очередях и вспомнил теорию графов. Сложности: Сложно было тестировать на Роботе Шарпе, поскольку забывал убирать функции печати. Комментарии: Тряхнул стариной, вспомнив поиск в ширину в графе:) Эх, не выкинь я конспекты по дискретке - было бы легче... В любом случае, спасибо за урок! Остался последний бой - он трудный самый:) P.S. думаю, что пригодится мне в дальнейшем для Сокобана:) |
|||||
21 | ФИНАЛЬНЫЙ УРОК |
|
|||
Задание Записать видео обзор твоих лучших программ этого курса. Отчёт отправил: 6925. Артём Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Повторил алгоритм записи видеообзора программы. Сложности: Не заикаться. Комментарии: Хорошая практика, программы надо уметь защищать :) Видеообзор: https://youtu.be/Da14hIb7pIw |
|||||
22 | VIP. Простые числа. Оптимизация алгоритма |
1 тест |
|||
Пишем функцию для поиска простых чисел и поэтапно оптимизируем её в двух направлениях. Отчёт отправил: 6925. Артём Выполнено за 4 час. 00 мин. [Показать отчёт] Научился: Изучил новые алгоритмы поиска простых чисел. Сложности: Не запутаться в функциях. Комментарии: Я думал, что знаю о простых числах всё. Оказалось, что нет :) Урок замечательный, спасибо! P.S. с решетом чуть позже повожусь) |
|||||
Итого: 22 видеоурока |
9 час. 57 мин. 21 тест |
29 чел. | |||
Финалисты: Елена, alexmail19Q, Максим Лапшинов, Андрей Поляков, Vera, Иван, Артём, Tekashnik, Михаил Ермишин, Николай, Alcatraz, Den Andreevich, Дмитрий, Иван Воронин, Алексей В., Новопашин Владимир, Сергей Зулкарнаев, Алексей Малышев, Александр, Sergio, Сергей Стефаненко, Денис, chokayes, ser2018, Дмитрий, Илья, Яков, MaxB, Tim . |