Шрифт:
Интервал:
Закладка:
3. Уточнять особенно необходимо, если задача нерешима.
4. Представление о разрешённой операции в общем виде шире сферы задач на построение.
Оно существенно и для компьютерной науки (computer science), и для компьютерной практики, а именно для программирования. Каждый компьютер имеет свой набор разрешённых операций, а каждая компьютерная программа есть некоторая цепочка операций, выбранных из этого набора.
Именно в силу философского аспекта задачи на построение должны занимать достойное место в школьном курсе геометрии. Мы не имеем в виду сложных задач, требующих зачастую большой изобретательности, – они должны изучаться в специализированных математических классах. Нет, речь идет о самых простых задачах вроде задачи на построение правильного треугольника или задачи на нахождение середины отрезка.
Решение задачи о построении равностороннего треугольника.
Пусть отрезок AB (см. рисунок) конгруэнтен исходному отрезку. Устанавливаем иглу в точку А, стило – в точку В и проводим окружность с центром в А. Далее переносим иглу в точку В, стило – в точку А и проводим окружность с центром в В. Полученные окружности пересекутся в двух точках. Одну из них обозначим буквой С. Треугольник АВС окажется равносторонним со сторонами, конгруэнтными исходному отрезку.
Глава 6
Массовые задачи и алгоритмы
В который уже раз подчеркнем, задача – это всегда требование что-то найти, построить, указать. В школе это «что-то» обычно называют ответом, а систему рассуждений, приводящую к ответу, – решением. Во «взрослой» математике ответ чаще всего тоже называют решением. Таким образом, термин «решение» обозначает сразу и действие, и его результат. Ситуация эта отнюдь не уникальна: слово «пение», например, означает и процесс извлечения звуков, и сами звуки. К путанице подобная многозначность, как правило, не приводит. Всё расставляет по местам контекст. Так что договоримся употреблять «взрослую» терминологию.
В замечательной одноактной пьесе «Урок» Эжена Ионеско есть такой диалог, который мы приведём с купюрами.
Учитель. ‹…› Сколько будет, ну, скажем, если три миллиарда семьсот пятьдесят пять миллионов девятьсот девяносто восемь тысяч двести пятьдесят один умножить на пять миллиардов сто шестьдесят два миллиона триста три тысячи пятьсот восемь?
Ученица (отвечает немедленно). Это будет девятнадцать квинтиллионов триста девяносто квадриллионов два триллиона восемьсот сорок четыре миллиарда двести девятнадцать миллионов сто шестьдесят четыре тысячи пятьсот восемь. ‹…›
Учитель (сосчитав в уме, с нарастающим изумлением). Да… Вы правы… ответ действительно… (невнятно бормочет) квадриллионов… триллионов… миллиардов… миллионов… (разборчиво) сто шестьдесят четыре тысячи пятьсот восемь… (Ошеломлённо.) Но каким образом вы это вычислили, если вам недоступны простейшие приемы арифметического мышления?
Ученица. Очень просто. Поскольку я не могу положиться на своё арифметическое мышление, я взяла и выучила наизусть все результаты умножения, какие только возможны[46].
Всех результатов умножения бесконечно много, так что выучить их наизусть нет никакой возможности. Да это и не нужно: Ионеско справедливо утверждает устами Учителя из своей миниатюры, что «математика – заклятый враг зубрёжки». (Кстати, теоретическая невозможность выучить все результаты получила в приведённом диалоге и экспериментальное подтверждение. Дело в том, что Ученица дала неправильный ответ: правильным ответом является число 19 389 602 947 179 164 508, а ею названо число 19 390 002 844 219 164 508. Не берусь судить, получил ли этот факт должное отражение в ионесковедении[47].)
Но мы ведь умеем умножать. Это потому, что ещё в начальной школе нас учат некоторому общему способу умножения любых целых чисел, а именно умножению столбиком. Любой человек, им овладевший, имеет право заявить, что теперь готов умножить друг на друга любые два натуральных числа – и не потому, что выучил все результаты (что, повторим, невозможно), а именно потому, что указанный способ позволяет найти требуемый результат для любой пары сомножителей.
Пример с умножением даёт представление о массовых задачах. Массовая задача образуется в результате совместного рассмотрения серии однотипных единичных задач. В случае умножения каждая единичная задача состоит в указании пары конкретных чисел (например, тех, которые были названы Ученице Учителем) и требовании найти их произведение. Это произведение является решением предложенной единичной задачи. Массовая же задача состоит здесь в требовании указать некий метод, позволяющий найти произведение для каждой отдельной пары чисел.
Другой простой пример. Требуется решить квадратное уравнение x2 − 13x + 30 = 0. Это единичная задача, и её решением служит пара чисел 3 и 10. А вот изучаемая в средней школе задача решения произвольного квадратного уравнения является массовой, и её решением служит всем известная (по крайней мере она должна быть всем известна) формула, дающая решение для любого конкретного квадратного уравнения.
Остановим свой взгляд на какой-нибудь массовой задаче и посмотрим, чем различаются составляющие её единичные задачи. Мы видим, что они различаются своими исходными данными. Для каждой единичной задачи умножения исходным данным служит конкретная пара чисел. А для каждой единичной задачи на решение квадратного уравнения исходное данное – это конкретное квадратное уравнение. Решением же массовой задачи является общий метод, дающий решение для каждой из составляющих её единичных задач. Если предложенный общий метод состоит в последовательности строго детерминированных операций, ведущих от исходных данных к результату, он называется конструктивным, или эффективным, или алгоритмическим, или, ещё короче, алгоритмом. Таким образом, можно говорить об алгоритме сложения столбиком, об алгоритме умножения столбиком, об алгоритме решения квадратных уравнений и т. п. Алгоритмы играют в математике – да и во всей нашей жизни – большую роль, особенно в связи с развитием компьютерной технологии.
Само слово «алгоритм» достаточно интересно: это, возможно, единственный математический термин, произошедший от географического названия – Хорезм. Это название носили историческая область и древнее государство в Средней Азии в низовьях реки Амударьи. В конце VIII – первой половине IX в. здесь жил замечательный ученый Мухаммед бен Муса аль-Хорезми (аль-Хорезми буквально означает «из Хорезма»). Он предложил некоторые методы решения арифметических задач, и на его авторитет ссылались средневековые европейские авторы, писавшие, как это было принято, на латыни. Начиная с XII в. его имя транслитерировалось как Algoritmi. Отсюда и пошёл термин «алгоритм». Поиски общего метода для решения массовой задачи велись со времён Античности. Однако впервые ясное понимание алгоритма в качестве самостоятельной сущности встречается лишь в 1912 г. в трудах великого