<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://www.wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%90%D0%B8%D0%A1%D0%94-2_%D0%AD%D0%BA%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD</id>
	<title>АиСД-2 Экзамен - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://www.wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%90%D0%B8%D0%A1%D0%94-2_%D0%AD%D0%BA%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD"/>
	<link rel="alternate" type="text/html" href="https://www.wikicshse.ru/index.php?title=%D0%90%D0%B8%D0%A1%D0%94-2_%D0%AD%D0%BA%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD&amp;action=history"/>
	<updated>2026-06-06T12:29:44Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://www.wikicshse.ru/index.php?title=%D0%90%D0%B8%D0%A1%D0%94-2_%D0%AD%D0%BA%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD&amp;diff=790&amp;oldid=prev</id>
		<title>imported&gt;Pankovamg: Migrated current public revision from wiki.cs.hse.ru</title>
		<link rel="alternate" type="text/html" href="https://www.wikicshse.ru/index.php?title=%D0%90%D0%B8%D0%A1%D0%94-2_%D0%AD%D0%BA%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD&amp;diff=790&amp;oldid=prev"/>
		<updated>2026-01-19T09:20:12Z</updated>

		<summary type="html">&lt;p&gt;Migrated current public revision from wiki.cs.hse.ru&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Подробный план проведения экзамена 20 декабря ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Письменная часть с 12.00 до 13.30&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Все студенты заходят в zoom по ссылке и переходят в одну из  7 комнат&lt;br /&gt;
&lt;br /&gt;
1. БКНАД251 - 1 по алфавиту от A до И&lt;br /&gt;
&lt;br /&gt;
2. БКНАД251 - 2 по алфавиту от К до Т&lt;br /&gt;
&lt;br /&gt;
3. БКНАД252 - 1 по алфавиту от A до Л&lt;br /&gt;
&lt;br /&gt;
4. БКНАД252 - 2 по алфавиту от М до О&lt;br /&gt;
&lt;br /&gt;
5. БКНАД252 - 3 по алфавиту от П до Ч&lt;br /&gt;
&lt;br /&gt;
6. БКНАД253 - 1 по алфавиту от Г до Ф&lt;br /&gt;
&lt;br /&gt;
7. БКНАД253 - 2 по алфавиту от X до Ю&lt;br /&gt;
&lt;br /&gt;
Вам нужно &lt;br /&gt;
&lt;br /&gt;
1. включить камеру, которая показывает вас&lt;br /&gt;
&lt;br /&gt;
2. транслировать весь свой рабочий стол.&lt;br /&gt;
&lt;br /&gt;
Это нужно сделать до 12.00, в 12.00 стартует контест экзамена.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ссылки на вход в контест экзамена&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В экзаменационном наборе контеста у вас будет 25 заданий.&lt;br /&gt;
Каждый верный ответ даёт 0,3 балла.&lt;br /&gt;
Во время экзамена вам не будет доступна таблица результатов и вердикт проверяющей системы, т.е. если ваш ответ не совпадает по формату - будет сообщение, иначе он будет просто принят для рассмотрения.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
❗️Внимание! На проверку принимается ПОСЛЕДНИЙ посланный ответ для каждого задания.&lt;br /&gt;
&lt;br /&gt;
Во время экзамена разрешается использовать приложения «блокнот» (и аналоги) и «калькулятор», писать программы на Python, а также пользоваться чистой бумагой и ручкой. &lt;br /&gt;
Нельзя использовать заранее написанный код и конспекты.&lt;br /&gt;
&lt;br /&gt;
Для выхода в устную часть экзамена вам необходимо верно решить &amp;#039;&amp;#039;&amp;#039;15 заданий&amp;#039;&amp;#039;&amp;#039; (набрать 4,5 балла)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Устная часть с 14.00&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
На каждый вопрос ожидается распространённый ответ.&lt;br /&gt;
Преподаватель может задавать дополнительные вопросы по материалу вопроса.&lt;br /&gt;
Оценка за каждый вопрос от 0 до 1,5 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Критерии оценки&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
0 нет ответа, или совсем неверный ответ&lt;br /&gt;
&lt;br /&gt;
0.5 студент владеет материалом, но допускает ошибки, не может привести примеры/пояснить асимптотику&lt;br /&gt;
&lt;br /&gt;
1 почти полный ответ, с незначительными ошибками&lt;br /&gt;
&lt;br /&gt;
1.5 полный ответ, с примерами, асимптотикой&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Итоговая оценка за экзамен:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Итоговая оценка = min(10, контест + устный ответ(если студен допущен к устной части))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;с 12.00 до 13.30&amp;#039;&amp;#039;&amp;#039; - письменная часть - контест из 5 теоретических вопросов по 5 заданий к каждом на Яндекс контесте.&lt;br /&gt;
Каждое задание оценивается независимо в 0,3 балла.&lt;br /&gt;
&lt;br /&gt;
В набор задач войдут задачи из банка задач к экзамену.&lt;br /&gt;
Экзамен проходит онлайн с подключением к zoom трансляции.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;с 14.00&amp;#039;&amp;#039;&amp;#039; - устная часть экзамена. &lt;br /&gt;
&lt;br /&gt;
В устную часть приглашаются все, кто набрал хотя бы 4,5 балла (15 правильных ответов из 25)&lt;br /&gt;
&lt;br /&gt;
Вы записываетесь на один из доступных временных слотов и подключаетесь по ссылке к zoom. &lt;br /&gt;
&lt;br /&gt;
На устной части экзамена вам достаётся билет из 3-х вопросов. Вопросы формируются из банка вопросов к экзамену.&lt;br /&gt;
По каждому вопросу билета экзаменующий может задавать дополнительные вопросы.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Банк задач и вопросов к экзамену:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Банк заданий и вопросов к экзамену состоит из открытой и закрытой части в отношении 80/20.&lt;br /&gt;
Открытая часть размещается в свободном доступе не позднее 13 декабря.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Оценка за экзамен:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Каждое задание вопроса оценивается независимо в 0,3 балла (max = 7,5сза все задания)&lt;br /&gt;
&lt;br /&gt;
Ответ на каждый вопрос устной части оценивается в баллах от 0 до 1,5 с шагом 0,5 (max = 4,5)&lt;br /&gt;
&lt;br /&gt;
Итоговая оценка = min(10, контест + устный ответ)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;big&amp;gt;Вопросы к устной части экзамена по АиСД, 2 модуль&amp;lt;/big&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
1.	Асимптотическая оценка сложности алгоритмов.&lt;br /&gt;
Опишите общую идею асимптотической оценки сложности алгоритмов по времени и по памяти. Дайте определение асимптотической нотации Big-O. Сформулируйте основные правила вычисления асимптотической сложности алгоритма. Приведите примеры наиболее распространённых асимптотик и укажите алгоритмы, работающие с соответствующей сложностью.&lt;br /&gt;
&lt;br /&gt;
2.	Бинарное возведение в степень.&lt;br /&gt;
Опишите идею бинарного возведения в степень. Сформулируйте алгоритм и объясните принцип его работы. Приведите итеративную или рекурсивную реализацию алгоритма. Оцените временную сложность алгоритма.&lt;br /&gt;
&lt;br /&gt;
3.	Факторизация целых чисел.&lt;br /&gt;
Опишите постановку задачи разбиения  числа на простые множители и основные методы её решения. Оцените асимптотическую сложность алгоритма факторизации. Объясните, как факторизация используется для нахождения количества делителей числа.&lt;br /&gt;
&lt;br /&gt;
4.	Решето Эратосфена.&lt;br /&gt;
Опишите алгоритм нахождения всех простых чисел от 2 до N с помощью решета Эратосфена. Объясните принцип его работы и оцените временную сложность. Поясните, как результаты работы алгоритма могут быть использованы для разложения числа на простые множители.&lt;br /&gt;
&lt;br /&gt;
5.	Алгоритм Евклида.&lt;br /&gt;
Опишите алгоритм Евклида для нахождения наибольшего общего делителя двух целых чисел. Объясните идею алгоритма, оцените его асимптотическую сложность и укажите возможные оптимизации.&lt;br /&gt;
&lt;br /&gt;
6.	Метод двух указателей.&lt;br /&gt;
Опишите идею метода двух указателей и объясните его применение для решения задачи поиска отрезков массива, в которых каждый элемент встречается ровно k раз. Раскройте принцип перемещения указателей, способ поддержания состояния текущего отрезка и используемые структуры данных. Оцените временную сложность алгоритма.&lt;br /&gt;
&lt;br /&gt;
7.	Максимальная сумма подотрезка.&lt;br /&gt;
Опишите алгоритм решения задачи о нахождении подотрезка числового массива с максимальной суммой. Объясните основную идею алгоритма, используемые методы линейной обработки данных и проанализируйте временную и пространственную сложность.&lt;br /&gt;
&lt;br /&gt;
8.	Стек: ближайший меньший элемент слева.&lt;br /&gt;
Опишите применение структуры данных «стек» на примере задачи о нахождении ближайшего меньшего элемента слева для каждого элемента массива. Объясните принцип работы алгоритма, правила добавления и удаления элементов из стека, а также обоснуйте корректность и сложность решения.&lt;br /&gt;
&lt;br /&gt;
9.	Стек: проверка скобочной последовательности.&lt;br /&gt;
Опишите применение структуры данных «стек» для проверки правильности скобочной последовательности, содержащей три вида скобок. Объясните, каким образом стек используется для контроля вложенности, какие условия определяют корректность последовательности, и оцените сложность алгоритма.&lt;br /&gt;
&lt;br /&gt;
10.	Дек: минимум в скользящем окне.&lt;br /&gt;
Опишите применение структуры данных «дек» на примере задачи нахождения минимума в скользящем окне фиксированной длины k. Объясните идею алгоритма, правила поддержания дека и оцените временную и пространственную сложность решения.&lt;br /&gt;
&lt;br /&gt;
11.	Жадные алгоритмы.&lt;br /&gt;
Опишите жадный принцип решения задач. Объясните основную идею жадных алгоритмов и условия, при которых жадный выбор приводит к оптимальному решению. Перечислите основные способы доказательства корректности жадных алгоритмов. Проиллюстрируйте жадный принцип на примере задачи составления оптимального расписания докладов.&lt;br /&gt;
&lt;br /&gt;
12.	Покрытие отрезка на прямой.&lt;br /&gt;
Опишите задачу покрытия заданного отрезка на числовой прямой минимальным количеством отрезков из заданного набора. Сформулируйте жадный алгоритм решения, объясните принцип выбора на каждом шаге, способ обработки событий и обоснуйте корректность алгоритма. Оцените сложность решения.&lt;br /&gt;
&lt;br /&gt;
13.	События на прямой: максимум покрытий.&lt;br /&gt;
Дайте определение понятию события в задачах на числовой прямой. Опишите типы событий, используемые при работе с отрезками и интервалами. Объясните процесс сортировки событий, роль компаратора и правила обработки событий с одинаковыми координатами. Опишите алгоритм нахождения точки, покрытой наибольшим количеством отрезков.&lt;br /&gt;
&lt;br /&gt;
14.	Сортировка событий: ближайший непересекающийся отрезок.&lt;br /&gt;
Опишите метод сортировки событий для работы с отрезками на числовой прямой. Объясните типы событий и правила их упорядочивания. На примере задачи поиска ближайшего слева отрезка, не пересекающегося с данным, поясните работу алгоритма и оцените его сложность.&lt;br /&gt;
&lt;br /&gt;
15.	Бинарный поиск по ответу: верёвочки.&lt;br /&gt;
Опишите идею бинарного поиска по ответу и её применение для нахождения последнего подходящего значения на примере задачи о получении из n верёвок не менее k верёвок максимально возможной длины. Объясните выбор границ поиска, проверку допустимости и оцените сложность алгоритма.&lt;br /&gt;
&lt;br /&gt;
16.	Вещественный бинарный поиск.&lt;br /&gt;
Опишите применение вещественного бинарного поиска для нахождения корней уравнения. Объясните условия применимости метода, выбор начального отрезка, критерии остановки и оцените временную сложность алгоритма.&lt;br /&gt;
&lt;br /&gt;
17.	Обменные квадратичные сортировки.&lt;br /&gt;
Опишите принцип работы обменных квадратичных сортировок на примере пузырьковой сортировки. На примере данного алгоритма объясните понятие устойчивости сортировки и критерии, по которым она определяется. Проанализируйте временную сложность алгоритма в лучшем, среднем и худшем случаях и укажите возможные оптимизации пузырьковой сортировки..&lt;br /&gt;
&lt;br /&gt;
18.	Наибольшая общая подпоследовательность (НОП).&lt;br /&gt;
Опишите решение задачи нахождения длины наибольшей общей подпоследовательности двух последовательностей с помощью динамического программирования. Укажите состояние, рекуррентное соотношение, базу, порядок вычислений и оценку сложности.&lt;br /&gt;
&lt;br /&gt;
19.	Наибольшая возрастающая подпоследовательность (НВП).&lt;br /&gt;
Опишите решение задачи нахождения длины наибольшей строго возрастающей подпоследовательности в массиве методом динамического программирования. Укажите состояние, рекуррентное соотношение, базу, порядок вычислений и оцените сложность алгоритма.&lt;br /&gt;
&lt;br /&gt;
20.	Задача о рюкзаке (точное наполнение).&lt;br /&gt;
Опишите решение задачи о рюкзаке с точным заполнением вместимости М методом динамического программирования. Определите состояние, базу, рекуррентный переход, порядок вычислений и оцените временную сложность алгоритма. Опишите решение с использованием линейной памяти. &lt;br /&gt;
&lt;br /&gt;
21.	Задача о рюкзаке (максимальная стоимость).&lt;br /&gt;
Опишите решение задачи о самом дорогом наполнении рюкзака вместимостью M предметами, у которых есть вес и стоимость методом динамического программирования. Определите состояние, базу, рекуррентный переход, порядок вычислений и оцените временную сложность алгоритма. Опишите процесс восстановления ответа &lt;br /&gt;
&lt;br /&gt;
22.	Генерация перестановок.&lt;br /&gt;
Опишите рекурсивный алгоритм генерации всех перестановок множества из N различных элементов. Объясните идею рекурсивного перехода, способ избежания повторений, базовый случай и оцените временную сложность.&lt;br /&gt;
&lt;br /&gt;
23.	Разложения числа на слагаемые.&lt;br /&gt;
Опишите рекурсивный алгоритм генерации всех разложений натурального числа N на натуральные слагаемые. Объясните, как обеспечивается уникальность разложений, структуру рекурсивных вызовов и базовый случай.&lt;br /&gt;
&lt;br /&gt;
24.	Генерация сочетаний.&lt;br /&gt;
Опишите рекурсивный алгоритм генерации всех сочетаний из N элементов по K. Укажите идею рекурсивного перехода, способ исключения повторений, базовый случай и оцените временную сложность.&lt;br /&gt;
&lt;br /&gt;
25.	Структура данных «куча».&lt;br /&gt;
Опишите идею построения структуры данных «куча». Дайте определение бинарной кучи и её основные свойства. Объясните алгоритм построения кучи из неупорядоченного массива. Опишите основные операции на куче и обоснуйте асимптотику их выполнения.&lt;br /&gt;
&lt;br /&gt;
26.	Быстрая сортировка (Quick Sort).&lt;br /&gt;
Опишите алгоритм быстрой сортировки и принцип «разделяй и властвуй». Объясните выбор опорного элемента, процесс разбиения массива и рекурсивную структуру алгоритма. Проанализируйте временную и пространственную сложность в лучшем, среднем и худшем случаях.&lt;br /&gt;
&lt;br /&gt;
27.	Сортировка слиянием (Merge Sort).&lt;br /&gt;
Опишите алгоритм рекурсивной сортировки слиянием. Объясните этапы разбиения и слияния подмассивов. Проанализируйте временную и пространственную сложность и сравните сортировку слиянием с быстрой сортировкой по устойчивости и потреблению памяти.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;big&amp;gt;Вопросы к письменной части экзамена по АиСД, 2 модуль&amp;lt;/big&amp;gt;&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Пример задания по теме &amp;quot;Теория чисел: Алгоритм Евклида&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
# Какое минимальное количество шагов (делений с остатком) требуется алгоритму Евклида для вычисления НОД(34, 21)?&lt;br /&gt;
# Напишите пропущенную строку в итеративной реализации алгоритма Евклида на Python:&lt;br /&gt;
    def gcd(a, b):&lt;br /&gt;
        while b != 0:&lt;br /&gt;
            pass&lt;br /&gt;
        return a&lt;br /&gt;
# Напишите формулу нахождения НОК натуральных чисел a, b используя функцию нахождения НОД двух чисел - gcd(a, b).&lt;br /&gt;
# Напишите оценку по времени в O нотации для алгоритма нахождения НОД для чисел a и b&lt;br /&gt;
# Для решения задачи &amp;quot;Полоска бумаги имеет размеры A × B. Каждый раз от нее отрезается квадрат максимального размера до тех пор, пока не получится квадрат. Сколько квадратов получится?&amp;quot; Использовали реализацию алгоритма Евклида с вычитанием. Напишите условие, которое позволит сократить решение задачи для тестов, где одно из входных чисел очень велико, а другое равно 1.&lt;br /&gt;
&lt;br /&gt;
    n, m = map(int, input().split())&lt;br /&gt;
    k = 1&lt;br /&gt;
&lt;br /&gt;
    else:&lt;br /&gt;
        while n != m:&lt;br /&gt;
            k += 1&lt;br /&gt;
            if n &amp;gt; m:&lt;br /&gt;
               n-= m&lt;br /&gt;
            else:&lt;br /&gt;
                m-= n&lt;br /&gt;
        print(k)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Банк заданий&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
по другим темам размещён в [https://docs.google.com/document/d/1NwBe6dm1mZytZLTT5HkEpMm8Xco5ifHtvOi2BMG6-jo/edit?tab=t.0#bookmark=id.xeak5b2t4val отдельном google документе]&lt;/div&gt;</summary>
		<author><name>imported&gt;Pankovamg</name></author>
	</entry>
</feed>