Экзаменационные билеты
Список вопросов для подготовки к экзамену¶
На экзамене вы получаете билет с двумя вопросами. Дополнительные вопросы — на усмотрение экзаменатора.
Первые вопросы:¶
- Принципы устройства булевых (двоичных) ЭВМ.
- Возможности интроспекции в языке Python.
- Поддержка различных систем счисления в языке Python.
- Кольца вычетов и целочисленная арифметика в Python.
- Логический тип. Логические и арифметико-логические операции. Ленивые операторы.
- Вложенное и каскадное ветвление.
- Цикл while и операторы управления ходом цикла.
- Цикл for. Поддержка итерируемых объектов в Python помимо цикла for.
- Конструктор и методы класса list. Ссылочная модель данных в Python и списки.
- List comprehensions. Вложенная генерация объектов-контейнеров.
- Варианты определения и использования функций. Функции как первосортные объекты в Python.
- Стандартные функции Python для редукции итерируемых объектов.
Вторые, алгоритмические вопросы:¶
- Примитивный тест простоты и решето Эратосфена. Что экономнее и когда?
- Алгоритм Евклида. Факторизация числа. Сложность по времени вычислений.
- Однопроходные алгоритмы редукции последовательности. Инициализация переменных и итерирование.
- Постановка задачи сортировки. Когда задача некорректна. Сортировка обезьяны и сортировка дурака.
- Три квадратичные универсальные сортировки. Сравнить и выбрать лучшую, обосновать свой выбор.
- Алгоритм слияния упорядоченных списков. Сортировка слиянием. Чем хороша и чем плоха.
- Алгоритм сортировки Тони Хоара. Чем хороша и чем плоха.
- Частотный анализ и сортировка подсчётом. Алгоритмическая сложность и применимость.
- Поразрядная сортировка. Алгоритмическая сложность и применимость.
- Двоичный поиск в массиве/списке. Алгоритмическая сложность и применимость.
- Рекурсия. Крайний и рекуррентный случай, ход рекурсии. Генерация комбинаторных объектов.
- Динамичное программирование сверху. Чистые функции. Кеширование.
- Динамичное программирование снизу. Задачи про кузнечика на числовой прямой.
- Максимальная сумма подотрезка числовой последовательности. Однопроходный алгоритм.
- Наидлиннейшая возрастающая подпоследовательность.
- Длина набольшей по длине общей подпоследовательности двух последовательностей.
- Алгоритм укладки рюкзака с дискретными массами предметов.
- Расстояние Левенштейна. Алгоритм поиска.
- Пи-функция строки. Алгоритм Кнута-Морриса-Пратта.
- Очереди FIFO и LIFO. Корректность скобочного выражения с несколькими видами скобок.
Сложные дополнительные вопросы:¶
- Реализовать перевод положительных чисел из 37-ричной системы счисления в 10-ю.
- Реализовать без контейнеров поиск индекса первого среди равных максимальному чисел в последовательности.
- Однопроходная реализация поиска среднеквадратического отклонения выборки.
- С использованием О(1) дополнительной памяти вернуть список A с удаленными из него элементами, равными К.
- Что такое устойчивость алгоритма сортировки? Пример неустойчивой сортировки. Можно ли сделать её устойчивой?
- Реализовать восстановление самой дешёвой траектории для задачи про кузнечика на прямой с платным посещением точек.
- Как реализовать нестандартную редукцию встроенными средствами Python?
- Длина набольшей по длине общей подпоследовательности трёх последовательностей.
- Восстановление траектории редакционных изменений для расстояния Левенштейна.
- Описать вычисление выражения в обратной польской нотации.