Читать «Вычислительное мышление: Метод решения сложных задач» онлайн - страница 30

Питер Макоуэн

После четвертой стопки назовите число, которое задумал доброволец! Как же вы это сделали?

Достаточно запомнить самое маленькое число в каждой отложенной стопке. Сложите их, и получится число, которое задумал человек. Почему? Эти самые маленькие числа отражают разряд в двоичном коде, который есть во всех картах из этой стопки. Так, если стопка отброшена, то загадочное число имеет 1 в этом разряде. Сложите эти малые значения, и вы переведете число из двоичного кода в десятичный. Например, если сброшены стопки 1 и 4, это значит, что искомое число — 0101 в двоичном коде или 5 в десятичном (0 8 + 1 4 + 0 2 + 1 1 = 4 + 1 = 5).

Таким образом, у вас появился новый фокус на основе той же математической модели, что и предыдущий.

Примечание фокусника

Считается, что принцип 16-й карты стал известен в 1958 г., когда программист и известный фокусник опубликовал фокус «7–16» в журнале фокусников . Он известен в среде фокусников благодаря манипуляции с картами, названной в его честь «счет Элмсли».

От фокусов к программам и наоборот

Итак, понимание информатики и математических принципов, стоящих за ней, поможет вам придумывать новые фокусы. Более того, справедливо и противоположное. Фокусники много раз изобретали нечто новое в информатике благодаря своим трюкам. Люди, придумывающие фокусы, делают то же самое, что и люди, придумывающие алгоритмы для компьютеров, — пишут новые программы. Возможно, вы слышали, что опытных программистов называют волшебниками. Программисты и в самом деле волшебники!

Глава 4

Головоломки, логика и образцы

Как решать головоломки? Несомненно, логическое мышление — главное, что для этого необходимо, но важнейший секрет мастеров именно обобщение и сопоставление с образцом. Эти приемы используют, чтобы разгадывать головоломки, писать программы и заниматься многими другими вещами — от игры в шахматы до тушения пожаров. Логическое мышление, обобщение и сопоставление с образцом также играют главную роль в вычислительном мышлении.

Головоломки «Улей»

Логические головоломки

Если вам нравятся головоломки и вы хорошо их решаете, то, вероятно, вам понравится информатика. В этой сфере умение мыслить логически необходимо прежде всего. Это относится к информатике в целом, но особенно важно при написании программ. Программы основаны на логике, и, как мы уже видели, важно четко увидеть все варианты, чтобы написать хороший код (и придумать хороший фокус). Программы должны работать при любых обстоятельствах, поэтому, и создавая, и оценивая их, программисту необходимо тщательно прорабатывать мелочи.