Практические занятия по курсу ОиМП
Материал из Wiki - Факультет компьютерных наук
Версия от 22:54, 17 сентября 2014; Kassalanche (обсуждение | вклад)
Содержание
Полезные ссылки
Для выполнения заданий необходимо установить интерпретатор Python.
Задачи, которые точно нужно уметь решать.
Рекомендации по выполнению
- Не используйте wildcard imports (from <module> import *), см. PEP8.
- Знак присваивания обособляйте пробелами с двух сторон. Плохо: a=b. Хорошо: a = b.
- Если требуется сравнить два числа с плавающей точкой (float) на равенство, то сравнивайте модуль их разницы с некоторым eps: |d1 - d2| < 0.0000001.
Задание 1. Ввод-вывод
Список обязательных задач для каждого студента.
Задание 2.
Перед выполнением задания нужно установить библиотеку Pillow.
Замечание. Доступ к элементам pixels осуществляется так: pixels[i,j].
Бонусные задачи
- Реализуйте масштабирование.
- Реализуйте отражение.
- Реализуйте размытие.
- Напишите свой фильтр для обработки изображений.
Задание 3
Решите 20 любых задач из контеста Ввод-вывод.
Бонусное задание. Шифрование RSA
- Реализуйте алгоритм создания открытого и секретного ключей.
- Реализуйте алгоритмы шифрования и дешифрования. Проверьте, что они работают.
- Реализуйте алгоритм взлома. Функция должна принимать аргументы c, n и m (см. обозначения в Википедии) и возвращать d, приватный ключ, такое что m == c^d mod n.
- Научитесь замерять время выполнения каждой из четырёх функций (функции генерации ключей, шифрования, дешифрования и взлома).
- Выберите некоторое значение m, например, m=100. Выведите таблицу:
n=11*13=143 | n=17*31=527 | n=109*157=17113 | n=3557*2579=9173505 | n=3533*3571=12616343 | |
---|---|---|---|---|---|
e=3 | |||||
e=17 | |||||
e=257 | |||||
e=65537 |
На пересечении i-ой строки и j-ого столбца должно стоять четыре неотрицательных числа --- время работы каждого из четырёх алгоритмов при заданных e и n. Если данное e не взаимно просто с n, поставить прочерк.
Задание 4
Если в Вашей фамилии чётное число букв, то решите все чётные задачи из контеста Обработка текста, иначе все нечётные.