Тактика решения задач
Какое-нибудь описание.
- Этапы решения задачи
- Формализация постановки, условий и требований задачи
- Составление чернового алгоритма-решения
- Моделирование объектов для решения
- Версия 0 (хоть какое-то решение)
- Версия 1 (согласно придуманному решению, какая получится)
- Версия 2 (зачищенный чистовой вариант)
Генератор тестовых данных
Проверочное (надёжное неэффективное) решение
Домашнее задание
- Имеется большая последовательность объектов (неважно каких), допускающих операцию сравнения. Известно, что некоторых одинаковых объектов в последовательности больше половины. Требуется, не храня последовательности, выяснить, чему они равны (т. е. ривести пример такого объекта). Можно решать на примере чисел.
- Написать генератор тестовых входных данных
Возможно, вам поможет в этом random.shuffle(последовательность)
- Это именная задача. Можете назвать имя автора?
- Написать генератор тестовых входных данных
- Входные данные представляют собой строки следующего вида:
............... .###....####... .###....####... .....##.####... .##..##.####.#. .##..##......#. .........###... ...............
- Символы "#" образуют прямоугольники, причем никакие прямоугольники не касаются ни друг друга (даже углами), ни краёв. Посчитать количество прямоугольников.
Последовательность из К элементов можно «проходить» по следующему алгоритму
- Начало — в 0-м элементе
- Допустим. он равен N
- Продолжение — в N-ном элементе
- Допустим, он равен M
- Продолжение — в N+M или N-M элементах.
- И так далее: значение текущего элемента можно прибавить или вычесть из индекса, если при этом не выходить за 0…K
- Ввести последовательность, проверить, можно ли добраться до последнего элемента (K-1-го)
Условные обозначения
— тема по Linux
— тема повышенной сложности
— теоретическое задание
— тема для самостоятельного изучения