Текст книги "Есть идея!"
Автор книги: Мартин Гарднер
сообщить о нарушении
Текущая страница: 2 (всего у книги 17 страниц)
Турнир по настольному теннису
Пять членов клуба любителей настольного тенниса средней школы им. Милларда Филмора решили провести между собой турнир по олимпийской системе.
Тренер составил таблицу розыгрыша турнира, снабдив ее следующими пояснениями.
Тренер. Пять – число нечетное, поэтому в первой круге один участник турнира свободен от игры. Еще один участник свободен от игры во втором круге. Таким образом, всего за турнир будет сыграно 4 партии.
На следующий год в спортивный клуб записалось 37 школьников. Тренер снова составил таблицу розыгрыша турнира, постаравшись свести до минимума число участников, которые переходят в следующий круг без игры. Сколько партий было сыграно за весь турнир на этот раз?
Как, вы еще не сосчитали? А ведь задача решается просто! В каждой партии проигравший выбывает, а поскольку дли того, чтобы определить победителя, следует исключить всех участников, кроме одного, то за весь турнир должно состояться 36 партий. Не правда ли, все очень просто?
Сколько участников турнира перейдут в следующий круг без игры?
Если вы пытались решить задачу о турнире по настольному теннису «в лоб», составляя различные варианты таблиц розыгрыша турнира с 37 участниками, то, должно быть, заметили, что независимо от способа составления таблицы число участников, переходящих в следующий круг без игры, всегда равно 4. В общем случае число участников, для которых в очередном круге не хватает партнера, есть функция от числа n всех участников турнира. Кате установить, сколько участников вынуждены будут перейти в следующий круг без игры?
При заданном n число участников, остающихся без партнера, можно определить следующим образом. Вычтем из n наименьшую степень числа 2, которая больше или равна n. Полученную разность запишем в двоичной системе. Число единиц в двоичной записи и будет равно числу участников турнира, вынужденных перейти в следующий круг без игры из-за нехватки партнера. В нашей задаче мы вычтем 37 из 64 (то есть из 26) и получим разность, равную 27. Десятичное число 27 в двоичной системе имеет вид 11011. Поскольку в его записи 4 единицы, то за весь турнир без игры в следующий круг перейдут 4 игрока. Обоснование этого алгоритма для определения числа участников, которым не хватает партнера, мы предоставляем читателю в качестве интересного упражнения.
Описанный в задаче тип турнира иногда называют «игрой на вылет». Он аналогичен алгоритму, который вычислители, работающие на современных ЭВМ, используют для нахождения наибольшего элемента в множестве из n элементов: наибольший элемент находят, сравнивая попарно элементы множества и отбрасывая при очередном сравнении тот из двух элементов, который не больше другого. Как мы уже знаем, чтобы найти наибольший элемент, достаточно произвести ровно n − 1 попарных сравнений. При автоматической сортировке сравнивать можно не только по 2, но и по 3, 4 и т. д. элемента.
Автоматическая сортировка играет важную роль в вычислительной математике и в информатике. Ей посвящено немало книг. Каждый из нас без труда назовет длинный перечень примеров применения автоматической сортировки. Подсчитано, что примерно четверть машинного времени в научных и в технических расчетах затрачивается на решение задач, связанных с сортировкой данных.
Стаканчики профессора Квиббла
Как-то раз продавец прохладительных напитков Барни предложил двум покупателям следующую задачку.
Барни. Перед вами 10 бумажных стаканчиков, расставленных в ряд. В первые 5 стаканчиков я наливаю кинки-колу, остальные 5 стаканчиков остаются пустыми. Можно ли переставить 4 стаканчика так, чтобы пустые и полные стаканчики чередовались?
Барни. Правильно! Стоит лишь переставить второй стаканчик с седьмым, а четвертый с девятым, как задача будет решена.
Разговор Барни с покупателями услышал проходивший мимо профессор Квиббл, большой любитель неожиданных решений, который счел необходимым вмешаться.
Проф. Квиббл. Переставлять 4 стаканчика совсем не обязательно. Я берусь решить задачу, переставив лишь 2 стаканчика. Как, по-вашему, это возможно?
Проф. Квиббл. Мое решение проще простого. Я беру второй стаканчик и переливаю его содержимое в седьмой, а содержимое четвертого стаканчика – в девятый.
Глубокая мысль
Хотя предложенное профессором Квибблом шуточное решение основано на неоднозначном толковании слова «переставить» (означающего не только «поменять местами», как полагал Барни, но и «поставить по-другому», чем и воспользовался профессор Квиббл), исходная задача не столь тривиальна, как может показаться. Рассмотрим, например, аналогичную задачу для случая, когда из 200 стаканчиков, выстроенных в ряд, в первые 100 налита кинки-кола, а 100 остальных оставлены пустыми. Сколько пар стаканчиков следует поменять местами, чтобы пустые и полные стаканчики чередовались?
Поскольку следить за 200 стаканчиками довольно трудно, разберем сначала ту же задачу при меньших значениях n, где n – число полных (или пустых) стаканчиков, и попытаемся подметить общую закономерность. Стаканчики можно «моделировать» фишками двух цветов, игральными картами, выложенными на столе рубашкой либо вверх, либо вниз, монетами и тому подобными предметами, наделенными каким-нибудь «двузначным» признаком. При n = 1 для решения задачи не требуется переставлять ни одной пары стаканчиков. При n = 2 решение очевидно и сводится к перестановке одной пары стаканчиков. Возможно, вы удивитесь, когда узнаете, что при n = 3 чередование пустых и полных стаканчиков достигается перестановкой одной пары стаканчиков. Еще немного усилий, и вам откроется довольно простая общая закономерность. При четном n для решения задачи требуется поменять местами n/2 пар, а при нечетном n соответственно (n − 1)/2 пар стаканчиков. Следовательно, если имеется 100 пустых и 100 полных стаканчиков, то задачу можно решить, переставив 50 пар стаканчиков.
При этом вы сдвинете с места 100 стаканчиков. Предложенное профессором Квибблом шуточное решение позволяет вдвое уменьшить число стаканчиков, сдвигаемых с места.
Существует одна классическая головоломка, очень похожая на только что рассмотренную нами задачу, но несколько более трудную. Начнем с 2n предметов, выстроенных в ряд. Пусть по-прежнему n предметов, составляющих первую половину ряда, будут одного типа, а n предметов, составляющих вторую половину ряда, будут другого типа. (Как и прежде, их можно «моделировать» стаканчиками, фишками, игральными картами и т. п.) Требуется переместить предметы так, чтобы предметы одного типа чередовались с предметами другого типа, но в отличие от предыдущей задачи слову «переместить» придается строго определенное значение. На этот раз слово «переместить» означает, что любые два соседних предмета разрешается, не изменяя их последовательности, изъять из ряда и пристроить к любому свободному концу (после одного или нескольких ходов ряд может распасться на несколько звеньев).
Вот как это делается, например, при n = 3:
Как выглядит общее решение? При n = 1 решение тривиально. При n = 2 задача, как нетрудно выяснить, неразрешима. При всех n > 2 головоломка допускает решение не менее чем за n ходов.
Найти решение при n = 4 не так-то просто, и поиск его, несомненно, доставит вам немало удовольствия. Может быть, вам удастся сформулировать алгоритм решения головоломки за n ходов при любом n > 3.
Не меньший вызов любознательному читателю таят в себе многие необычные варианты той же головоломки. Приведем лишь некоторые из них.
1. Правила перемещения пар остаются теми же за одним исключением: если пара образована предметами различных типов, то перед тем, как пристроить ее к свободному концу, последовательность предметов в паре следует изменить. Например, перемещая две фишки, первая из которых (левая) красная, а вторая (правая) черная, их необходимо поменять местами, после чего первой станет черная, а второй красная фишка, и лишь после этого пристраивать к свободному концу. При 8 фишках существует решение в 5 ходов. При 10 фишках 5 ходов также оказывается достаточно. Общее решение неизвестно. Может быть, вам удастся найти его.
2. Правила такие же, как в исходной задаче, но фишек одного цвета на 1 меньше, чем другого, то есть фишек одного цвета n, а фишек другого n + 1. Доказано, что при любом n задачу можно решить за n² ходов, причем это число минимально.
3. Имеются фишки трех различных цветов. Пары соседних фишек перемещаются по обычному правилу с тем, чтобы фишки каждого цвета оказались выстроенными подряд. При n = 3 (всего 9 фишек) существует решение в 5 ходов. И в этом, и во всех предыдущих вариантах головоломки предполагается, что после последнего перестроения фишки стоят в ряд «сомкнутым строем» (без пробелов). Если ряд может содержать пробелы, то существует необычное решение всего лишь в 4 хода.
Напрашиваются и другие варианты головоломки. Насколько известно, их никто ранее не предлагал и уж конечно не решал. Например, в каждом из приведенных нами вариантов головоломки за один ход можно перемещать не по две, а по три (и более) соседние фишки.
Что произойдет, если на первом ходу переместить фишку, на втором – 2 фишки, на третьем – 3 фишки и т. д.? Если в ряд выстроены n фишек одного цвета и затем п фишек другого цвета, то всегда ли правильного чередования цветов можно добиться за n ходов?
Дороги, которые мы выбираем
Маленькая Сьюзен в большом затруднении. Дело в том, что по дороге в школу ее то и дело подстерегает скверный мальчишка Станки.
Станки. Эй, Сьюзен! Можно, я пойду с тобой?
Сьюзен. Нет, очень тебя прошу, уйди!
Сьюзен. Я придумала, что мне делать. Буду ходить в школу каждое утро другой дорогой. Тогда Станки ни за что не догадается, где меня можно подстеречь.
На этой карте показаны все улицы между домам Сьюзен и ее школой. Направляясь в школу по намеченному маршруту, Сьюзен идет либо строга на восток, либо на юг.
Здесь вы видите Сьюзен, идущую в школу по другой дороге. Разумеется, ей не хотелось бы удаляться от школы. Сколькими способами можно добраться от дома Сьюзен до школы?
Сьюзен. Хотела бы я знать, сколько различных дорог ведет от моего дома к школе. Подумаем! Сосчитать их, должно быть, не просто. Впрочем… Есть идея! Сосчитать дороги совсем не трудно! Очень даже просто!
Какая идея пришла в голову Сьюзен?
Вот как она рассудила.
Сьюзен. У того перекрестка, возле которого я живу, поставлено на карте число 1: выйти из дома я могу лишь одним способом. У перекрестков, расположенных в одном квартале к востоку и к югу от дома, я поставлю по 1, потому что до каждого из них можно добраться только одним способом.
Сьюзен. У этого перекрестка я поставлю число 2, так как к нему от моего дома ведут 2 различные дороги.
Тут Сьюзен стало ясно, что число у каждого перекрестка равно либо ближайшему числу (если оно одно), либо сумме двух ближайших чисел.
Сьюзен. Еще четыре перекрестка пометила числами. Скоро закончу.
Не поможете ли вы Сьюзен? Не подскажете ли ей, сколько различных дорог ведет от ее дома к школе?
Сколько путей?
Три перекрестка на ближайшей вертикали справа следует пометить (сверху вниз) числами 1, 4, 9, а два перекрестка на следующей вертикали – числами 4 и 13. Число 13, стоящее на карте у самого правого нижнего перекрестка, показывает, что Сьюзен может выбрать кратчайшую дорогу в школу 13 различными способами.
Придуманный Сьюзен метод действительно приводит к простому и эффективному алгоритму для определения числа кратчайших путей, ведущих от ее дома к школе. Если бы Сьюзен попыталась вычертить все пути, чтобы затем пересчитать их, то решение оказалось бы весьма громоздким, а при большом числе улиц просто необозримым. Вы сможете лучше оценить эффективность предложенного Сьюзен алгоритма, если вычертите все 13 путей.
Чтобы проверить, насколько глубоко вы усвоили алгоритмы Сьюзен, попробуйте нарисовать сети улиц, имеющие другие конфигурации, и подсчитать число кратчайших путей, ведущих из точки А в точку В. Четыре задачи этого типа представлены на рис. 1. Решать их можно по-разному, например, воспользоваться комбинаторными формулами, но все методы несколько сложнее алгоритма Сьюзен.
Чему равно число кратчайших путей, по которым ладья может перейти из одного углового поля на шахматной доске в другое, диагонально противоположное? Эта задача легко решается, если каждому полю на шахматной доске приписать по числу так же, как Сьюзен приписывала числа перекресткам на карте города. Ладья ходит только по горизонтали и вертикали. Следовательно, кратчайший путь из любой клетки в любую другую состоит в преодолении разделяющего клетки расстояния по горизонтали и по вертикали. Если числа расставлены верно (см. рис. 2), то они указывают число кратчайших путей, ведущих из нижнего угла в любое поле. Например, поле в правом верхнем углу помечено числом 3432. Следовательно, ладья может перейти с поля, стоящего в левом нижнем углу доски на диагонально противоположное поле 3432 кратчайшими путями.
Разрезав шахматную доску по диагонали и повернув половину, мы получим треугольник, изображенный на рис. 3. Числа, стоящие в клетках любого ряда, указывают число кратчайших путей, ведущих в них из самой верхней клетки. Расставленные в клетках числа образуют знаменитый арифметический треугольник Паскаля, и это не удивительно: алгоритм для подсчета числа кратчайших путей, ведущих от вершины, в точности совпадает с процедурой построения треугольника Паскаля. Этот изоморфизм позволяет считать исходную головоломку прологом к изучению необычайно разнообразных и красивых свойств треугольника Паскаля.
Треугольник Паскаля позволяет находить биномиальные коэффициенты (то есть коэффициенты при любом члене разложения (a + b)n, где n – любое целое число) и решения многих задач элементарной теории вероятностей. Заметим, что на рис. 3 число кратчайших путей, ведущих из вершины треугольника в самую левую или самую правую клетку нижнего ряда, равно 1 и что по мере приближения к середине ряда число кратчайших путей возрастает. Возможно, вам случалось видеть одно из устройств, действие которых основано на свойствах треугольника Паскаля: по наклонной доске, в которую в шахматном порядке вбиты колышки, скатываются шарики и скапливаются в отсеках под колышками нижнего ряда. Распределение шариков имеет форму колоколообразной кривой, а число шариков в каждом отсеке пропорционально соответствующему биномиальному коэффициенту, потому что число кратчайших путей, ведущих в каждый отсек, в точности совпадает с определенным биномиальным коэффициентом.
Алгоритм, предложенный Сьюзен, как нетрудно понять, остается в силе и для трехмерных сетей, в которых ячейки («кварталы») имеют форму прямоугольных параллелепипедов. Представьте себе куб с длиной ребра 3 единицы, разделенный на 27 единичных кубов. Будем считать его пространственной шахматной доской и в угловую «клетку» поместим ладью, которая может двигаться параллельно любому из ребер куба. Сколькими способами ладью можно перевести кратчайшим путем в клетку, расположенную на другом конце диагонали куба?
Перепутали
В одном родильном доме по чьему-то недосмотру перепутали карточки с именами 4 младенцев. У двух детей оказались их карточки, а карточки остальных двух малюток были разложены неправильно.
Сколько существует различных вариантов путаницы?
Подсчитать число вариантов совсем нетрудно, если составить таблицу. Оказывается, что карточки с именами 2 детей из 4 можно перепутать лишь 6 различными способами.
Предположим теперь, что после того, как карточки перепутали, у трех детей оказались карточки с их именами, а одному младенцу досталась карточка с чужим именем. Сколько вариантов путаницы существует в этом случае?
Как бы вы стали решать эту задачу? Составили бы таблицу? А может быть, у вас есть идея, как решить эту задачу проще?
«Птичка в клетке»
Многим кажется, что ответить на вопрос задачи довольно трудно. Те, кто так думает, ошибочно полагают, будто перепутать карточки так, чтобы 3 младенцам из 4 достались карточки с их именами, можно многими способами. Но стоит лишь обратиться к принципу «птичка в клетке» и сформулировать задачу несколько иначе, как ответ сразу становится очевидным. Предположим, что перед нами 4 клетки и на каждой из них укреплена карточка с названием одного из 4 предметов. Если 3 предмета попали в клетки со своими названиями, то четвертому предмету не остается ничего другого, как попасть в клетку, к которой прикреплена карточка с его названием. Таким образом, мы имеем дело лишь с одним вариантом: каждый из 4 предметов оказывается в своей клетке.
Во многих книгах по занимательной математике встречается следующая задача, в которой речь идет лишь о 3 предметах. На столе расставлены 3 закрытые коробки. В одной из них находятся 2 монеты по 5 центов, в другой – 2 монеты по 10 центов и в третьей – 1 пятицентовая и 1 десятицентовая монета. На крышках коробок написано: 10 центов; 15 центов и 20 центов, но ни одна из надписей не соответствует содержимому коробки. Предположим, что из коробки с надписью «15 центов» (напомним, что надпись не соответствует содержимому коробки) извлекли 1 монету и положили на стол перед коробкой. Можно ли, взглянув на эту монету, сказать, какие монеты находятся в каждой из 3 коробок?
Как и в предыдущей задаче, многих вводит в заблуждение кажущаяся неоднозначность выбора: они думают, будто существует довольно много вариантов решения, тогда как на самом деле задача допускает единственное решение. Монета, извлеченная из коробки с надписью «15 центов» (не соответствующей содержимому), может быть монетой достоинством либо в 5 центов, либо в 10 центов. Если извлечена монета достоинством в 5 центов, то в коробке первоначально находились 2 монеты по 5 центов. Если извлечена монета достоинством в 10 центов, то в коробке первоначально находились 2 монеты по 10 центов. И в том и в другом случае содержимое остальных двух коробок восстанавливается однозначно. Нетрудно видеть, что не соответствующие содержимому каждой коробки надписи оставляют лишь 2 варианта распределения монет по: коробкам. После того как из коробки с ложной надписью «15 центов» извлечена 1 монета, один вариант исключается, и остается единственный допустимый вариант, соответствующий правильному решению.
Иногда встречается несколько более сложная разновидность той же задачи. Содержимое всех трех коробок требуется определить, извлекая наименьшее число монет (из любой коробки). Единственное решение задачи состоит в том, чтобы из коробки с надписью «15 центов» извлечь 1 монету. Может быть, вам удастся придумать более сложные варианты задачи: в одной коробке могут находиться более 2 монет, да и самих коробок может быть более 3.
С задачей о младенцах тесно связано немало других задач на сообразительность, так же, как и исходная задача, приводящих к элементарной теории вероятностей. Например, если карточки с именами младенцев перемешаны наугад, то какова вероятность, что у всех 4 младенцев окажутся карточки с их именами? С какой вероятностью у всех 4 младенцев карточки не будут соответствовать их именам? Какова вероятность, что по крайней мере у 1 младенца окажется карточка с его именем? Какова вероятность, что ровно у 1 младенца окажется карточка с его именем? Какова вероятность, что. по крайней мере у 2 младенцев окажутся карточки с их именами? Какова вероятность, что ровно у 2 младенцев окажутся карточки с их именами? Какова вероятность, что не более чем у 2 младенцев окажутся карточки с их именами? И так далее.
Вопрос о «по крайней мере одном» – независимо от того, о чем идет речь, – один из классических вопросов занимательной математики. Довольно часто его облекают в форму задачи об n посетителях ресторана, сдавших шляпы в гардероб. Рассеянный гардеробщик выдал посетителям номера наугад, нимало не заботясь о том, кому достанется номерок от шляпы – ее владельцу или кому-нибудь другому. Какова вероятность, что по крайней мере один посетитель получит свою шляпу? Оказывается, что при возрастании n эта вероятность быстро стремится к 1 – (1/e), то есть немногим больше ½. Здесь e – знаменитая иррациональная константа (число Эйлера), равная 2,71828… В задачах теории вероятностей она встречается так же часто, как число π в геометрических задачах.
Стаканы профессора Квиббла
У профессора Квиббла имеется для вас задача-головоломка.
Проф. Квиббл. Возьмите 3 стакана для сбивания молочного коктейля и попробуйте разложить по ним 11 монет так, чтобы в каждом стакане число монет было нечетным.
Проф. Квиббл. Задачка не из трудных, не так ли? И решений она допускает много. Например, в один стакан можно положить 3 монеты, в другой – 7 монет, а в третий – 1 монету.
Проф. Квиббл. А сумеете ли вы разложить по тем же 3 стаканам 10 монет так, чтобы число монет в каждом стакане было нечетным? Сделать это можно, хотя и не просто!
Проф. Квиббл. Надеюсь, вы не отступили перед трудностями? Вам нужно было лишь догадаться вставить один стакан в другой. После этого уже совсем нетрудно разложить монеты так, чтобы в каждом стакане оказалось нечетное число монет.
Подмножества Квиббла
Счастливая идея, позволяющая сразу же решить головоломку проф. Квиббла, сводится к тому, что одни и те же монеты могут одновременно находиться более чем в одном стакане. На языке теории множеств решение задачи допускает следующее описание: имеется два множества монет, одно из которых содержит 7 элементов, а другое – 3 элемента, причем в последнем множестве выделено подмножество, содержащее 1 элемент. Наглядно полученное решение можно изобразить в виде следующей диаграммы:
Найти все остальные решения мы предоставляем читателю. Додуматься до 10 решений, одно из которых предложил проф. Квиббл, не составит особого труда, но найти еще 5 решений (всего существует 15 решений задачи) не так-то просто: необходимо «озарение».
После того как вам удастся найти все 15 решений, попробуйте обобщить задачу, варьируя число монет, стаканов и отличительные особенности числа монет, разложенных по стаканам.
Основная идея «счастливой находки», позволившей решить задачу проф. Квиббла (элементы какого-то множества принадлежат другому множеству и при подсчете учитываются дважды), встречается во многих известных головоломках и парадоксах. Приведем лишь одну из таких задач, носящую шуточный характер.
После того как один школьник пропустил целую неделю занятий, его навестил учитель. Школьник принялся объяснять, почему ему некогда ходить в школу.
– Я сплю 8 часов в сутки. Это составляет 8 × 365 = 2920 часов в году, или, так как в сутках 24 часа, 2920: 24 (около 122) суток.
По субботам и воскресеньям школа не работает, что составляет за год 104 дня.
60 дней в году приходятся на летние каникулы.
На завтрак, обед и ужин у меня уходит 3 часа в день, то есть 3 × 365 = 1095 часов, или 1095: 24 (около 45 суток) в год.
По крайней мере 2 часа в день мне необходимы для отдыха, что составляет 2 × 365 = 730 часов, или 730: 24 (около 30 суток) в год.
Школьник выписал названные им числа в столбец и просуммировал:
На сон – 122
Субботы и воскресенья – 104
Летние каникулы – 60
Завтраки, обеды и ужины – 45
Отдых – 30
Итого – 361 день
– Видите, – продолжал школьник, – у меня остается всего-навсего 4 дня в год на болезни, а о праздниках я и не говорю!
Учитель внимательно проверил все выкладки, но не смог обнаружить в них ошибки. Проверьте этот парадокс на своих приятелях. Многие из них сумеют найти ошибку? А ошибка кроется в том, что некоторые подмножества дней года сосчитаны более одного раза: множества, на которые школьник разбил 365 дней в году, перекрываются (пересекаются) так же, как множества монет в стаканах проф. Квиббла.