15 ЗАДАЧА и ПРОГРАММИРОВАНИЕ Посмотрим остальные типы, которые не вошли в пост вчера. Какие детали есть у таких решений. ДИАПАЗОН ПЕРЕБОРА Нужно очень хорошо понимать, в каком диапазоне нужно перебирать числа. В задачах на делимость можно упростить подбор путем перемножения значений делителей, на диапазоны х и у - произведение значений умноженное на 2 (с запасом чтобы), видим квадраты - берем показатель больше указанных в задании и возводим в квадрат. Поэтому нужно быть аккуратным и понимать, какие числа подставлять. ГЕНЕРАТОРЫ ДЛЯ ПЕРЕБОРА Чтобы не писать вложенные конструкции лучше использовать уже существующие решения - в Python библиотеку itertools. ИСПОЛЬЗОВАНИЕ ALL и ANY Еще одна полезная фича - в pascalabcnet такое тоже есть - позволяющая не писать алгоритм перебора. Если все (для all) или один (для any) перебираемые элементы истины. Очень удобно, смотри последние две картинки. Да, нужна практика, чтобы их писать быстро. Зато код получается достаточно компактным и не требующим написания ручного алгоритма проверки. PS: но все равно нужно научиться решать руками, чтобы быстро ориентироваться в ограничениях как минимум. PPS: все это работает только потому, что у ответов к задачам есть ограничения. В общем случае задачу такие программы не решают.

Теги других блогов: программирование задачи Python