Читать «Вычислительное мышление: Метод решения сложных задач» онлайн - страница 112
Питер Макоуэн
При решении задач сопоставление с образцом помогает уменьшить объем работы, потому что при получении новой задачи позволяет не повторять одни и те же сложные операции каждый раз. Нужно найти аналогичную задачу из числа уже решенных и взять старое решение. Например, когда вы видите задачу или головоломку, связанную с составлением маршрута, нужно вспомнить о графах. Эту же мысль можно сформулировать по-другому: если вы видите, что задача соответствует модели передвижения из одной точки в другую, то для ее представления стоит использовать . Точки необязательно должны быть физически существующими местами. Например, это могут быть веб-страницы (с гиперссылками между ними), режимы будильника (с кнопочным переходом между ними), города (с перелетами из одного в другой) и так далее.
Представление
Решение проблемы можно облегчить, выбрав для нее хорошее является способом организации информации. Есть на удивление много возможностей представить одну и ту же информацию, и, как только вы это осознаете и с самого начала сосредоточитесь на выборе хорошего представления, задачи станут проще. Как мы видели на примере задач с составлением графа и игры «Бусы, хлеб, баня», хорошее представление значительно облегчает весь процесс как для людей, так и для компьютеров. Однако оно может полностью поменять используемый алгоритм. Порой очевидно, что благодаря верному представлению открываются возможности использовать простой и быстрый алгоритм вместо медленного и сложного. В этой книге мы ознакомились с разными представлениями — например, изображения, состоящие из большого количества формирующих решетку, и изображения в виде линий и фигур. Мы узнали, что представление в виде сетки открывает самые разные возможности. Также мы увидели, что если числа хранятся в двоичном представлении на перфокартах, то возможен быстрый поиск и применение алгоритма упорядочивания. Представление образца в виде позволяет создать алгоритмы, помогающие компьютерам видеть. То есть выбор хорошего представления является важной частью и
Абстрагирование
— это сокрытие деталей разными способами с целью облегчить решение задачи. Есть масса разных способов, которые позволяют спрятать подробности. Этому способствует создание алгоритмов и их .
Один из важных способов использования абстрагирования, который называется мы рассмотрели на примере фокусов. Он состоит в объединении инструкций, что позволяет получить инструкции для достаточно больших этапов процесса. Идея здесь состоит в том, чтобы спрятать подробности отдельных маленьких шагов. В кулинарных книгах это встречается на каждом шагу. Там даются инструкции вроде «сварите картошку». Сюда входит много этапов: наполнить кастрюлю водой, включить конфорку, довести воду до кипения, положить картошку и так далее. Все эти шаги сведены вместе в одну простую команду «сварите картошку». Чтобы выполнить инструкцию, нужны все детали, но абстрагирование помогает записать инструкции и воспринимать алгоритм (или рецепт) в целом, чтобы работать с большими шагами. Изобилие подробностей мешает думать, пока вы не дойдете до них и не начнете с ними работать. Эта форма абстрагирования очень близка к , которую мы опишем ниже.