Читаем Игры с Чипом полностью

— Нет, у меня генеральная уборка, — вздохнул Сережа. — Ну и скучное же дело! Особенно перебирать шкафы. Я ведь хотел как быстрее: книжки забросил в один, одежду в другой, дверцы прикрыл и пошел гулять. Так бабушка шкафы открыла и заставила перекладывать: чтобы все книги стояли по порядку — по теме, по году издания, по размерам. И с одеждой тоже: сначала маленькая, потом побольше, потом совсем большая — папина... Жуть! И так можно все найти, если постараться: залез, разрыл кучу, нужную вещь вытянул. Пока все книги расставишь, они так надоедят, что больше их читать не захочется.

— Не огорчайся. Даже в такой простой жизненной ситуации можно увидеть интересную задачу и придумать красивый алгоритм. А заодно и понять, почему проще постоянно поддерживать порядок, чем наводить его раз в месяц.

— Какой уж тут алгоритм! Знай рассовывай по шкафам тряпки... Апчхи! Апхчи!

— Замечательный алгоритм быстрой сортировки. Если у тебя есть, например, пятьсот книг, то он ускорит твою работу в тридцать раз. Давай только начнем издалека. Рассмотрим такую задачу: приятель позвал тебя в гости, номер квартиры сказал, а этаж назвать забыл. Предположим, что он живет в очень высоком, скажем, стоэтажном, доме, где на каждом этаже разное число квартир.

— В Эмпайр-Стейт-Билдинг?

— Пусть там. По числу этажей и количеству почтовых ящиков на первом этаже ничего сказать нельзя. Как бы ты стал искать своего друга?

— По запаху! Раз он меня пригласил, значит, у него пахнет чем-то вкусным, — засмеялся Сережа. — А если говорить серьезно, я бы, наверное, доехал на лифте до верхнего этажа и стал бы спускаться вниз, проверяя номера на дверях.

— И сколько переходов с этажа на этаж тебе бы потребовалось?

— Ну, — задумался Сережа,— если в доме сто этажей и квартира может оказаться на любом, то в худшем случае я осмотрю все сто, а в среднем, наверное, этажей пятьдесят.

— А я утверждаю, что квартиру твоего друга можно найти не более чем за семь проверок. Помнишь стишок про степени двойки?

— Ты хочешь сказать, что два в седьмой — 128? Но при чем тут это?

— А как чипы справились с Мегафлопом, ты помнишь? Для того чтобы нескольким чипам быстро сложить много чисел, эти числа разбивались на пары, и каждую пару суммировал свой чип, потом суммы снова разбивались на пары и так далее, пока не оставалась сумма всех чисел. Тогда сто чисел мы бы сложили за семь шагов. Если нарисовать график такого суммирования, то получится что-то вроде дерева. А теперь попробуй перевернуть его головой вниз.

— Постой, постой, я, кажется, понял, — обрадовался Сережа. — Мы так определяли день рождения друга. Я должен поехать на пятидесятый этаж, посмотреть там номер квартиры и, если он больше, чем у моего приятеля, поехать вниз, на 25-й, а если меньше, то на 75-й, там опять посмотреть номер квартиры и так далее. Тогда можно за семь шагов найти друга даже в доме со 128 этажами.

— Молодец! — обрадовался Чип. — Вот ты сам придумал алгоритм двоичного поиска. А теперь попробуй написать программу. Давай воспользуемся командой:


ПОВТОРЯЙ, ПОКА ВЕРНО УСЛОВИЕ ((БЛОК))[7].


Сережа поднатужился и начал писать, косясь при этом на дверь: вдруг войдет бабушка и задаст ему нагоняй за то, что он отлынивает от уборки?


Программа:

1. ВЕРХНИЙ ЭТАЖ = 128.

2. НИЖНИЙ ЭТАЖ = 0.

3. Читай из записной книжки номер квартиры друга.

4. Повторяй, пока ВЕРХНИЙ ЭТАЖ выше НИЖНЕГО.

   ((СРЕДНИЙ ЭТАЖ = (ВЕРХНИЙ + НИЖНИЙ) : 2.

   если ДРУГ живет на СРЕДНЕМ этаже, то КОНЕЦ,

   если ДРУГ живет выше СРЕДНЕГО, то НИЖНИЙ этаж приравниваем к СРЕДНЕМУ,

   иначе ВЕРХНИЙ приравниваем к СРЕДНЕМУ.))


— Ишь ты, ни одной ошибки, — сказал Чип, заглянув в листок, — не зря ты учишься в кружке программистов.

— Только какое это имеет отношение к уборке? — отложив ручку, спросил Сережа.

— Самое прямое! — успокоил его Чип. — Давай разберем еще одну задачку. Ты читал сказку Шарля Перро «Золушка»?

— Спрашиваешь!

— Тогда ты, конечно, помнишь, что принц приказал мерить туфельку всем девушкам королевства. Сначала принцессам, потом герцогиням, потом придворным дамам... А теперь посчитаем. Во Франции порядка миллиона девушек нужного возраста. Если каждая будет мерить туфельку хотя бы в течение минуты, то вся процедура примерки займет около трех лет, и это при условии, что принц будет работать не покладая рук день и ночь. Только сказочная любовь может выдержать подобное испытание. А теперь предположим, что мы с тобой советники короля. Если бы девушек можно было построить, но не по росту, а по размеру ноги, что бы ты предложил принцу?

— Я предложил бы ему объявить по радио, чтобы все девушки измерили свои ноги с точностью до миллиметра и позвонили бы во дворец...

Перейти на страницу:

Похожие книги

Основы психофизиологии
Основы психофизиологии

В учебнике «Основы психофизиологии» раскрыты все темы, составляющие в соответствии с Государственным образовательным стандартом высшего профессионального образования содержание курса по психофизиологии, и дополнительно те вопросы, которые представляют собой «точки роста» и привлекают значительное внимание исследователей. В учебнике описаны основные методологические подходы и методы, разработанные как в отечественной, так и в зарубежной психофизиологии, последние достижения этой науки.Настоящий учебник, который отражает современное состояние психофизиологии во всей её полноте, предназначен студентам, аспирантам, научным сотрудникам, а также всем тем, кто интересуется методологией науки, психологией, психофизиологией, нейронауками, методами и результатами объективного изучения психики.

Игорь Сергеевич Дикий , Людмила Александровна Дикая , Юрий Александров , Юрий Иосифович Александров

Детская образовательная литература / Биология, биофизика, биохимия / Биология / Книги Для Детей / Образование и наука
Путеводитель по поэме Н.В. Гоголя «Мертвые души»
Путеводитель по поэме Н.В. Гоголя «Мертвые души»

Пособие содержит последовательный анализ текста поэмы по главам, объяснение вышедших из употребления слов и наименований, истолкование авторской позиции, особенностей повествования и стиля, сопоставление первого и второго томов поэмы. Привлекаются также произведения, над которыми Н. В. Гоголь работал одновременно с «Мертвыми душами» — «Выбранные места из переписки с друзьями» и «Авторская исповедь».Для учителей школ, гимназий и лицеев, старшеклассников, абитуриентов, студентов, преподавателей вузов и всех почитателей русской литературной классики.Summary E. I. Annenkova. A Guide to N. V. Gogol's Poem 'Dead Souls': a manual. Moscow: Moscow University Press, 2010. — (The School for Thoughtful Reading Series).The manual contains consecutive analysis of the text of the poem according to chapters, explanation of words, names and titles no longer in circulation, interpretation of the author's standpoint, peculiarities of narrative and style, contrastive study of the first and the second volumes of the poem. Works at which N. V. Gogol was working simultaneously with 'Dead Souls' — 'Selected Passages from Correspondence with his Friends' and 'The Author's Confession' — are also brought into the picture.For teachers of schools, lyceums and gymnasia, students and professors of higher educational establishments, high school pupils, school-leavers taking university entrance exams and all the lovers of Russian literary classics.

Елена Ивановна Анненкова

Детская образовательная литература / Литературоведение / Книги Для Детей / Образование и наука
Всеобщая история. История средних веков. 6 класс
Всеобщая история. История средних веков. 6 класс

Предлагаемый учебник входит в учебно-методический комплекс по всеобщей истории для 6 класса. Учебник полностью соответствует Федеральному государственному образовательному стандарту основного общего образования, рекомендован Министерством образования и науки РФ и включён в Федеральный перечень.В учебнике освещается история стран Европы, Азии и Америки в Средние века. Наряду с данными о хозяйственной и политической жизни стран и народов, значительное место уделено вопросам культуры и повседневной жизни людей. Для передачи «духа Средневековья» в книге используются отрывки из литературных произведений, а для расширения кругозора учащихся и формирования необходимых компетенций по предмету предусмотрены творческие задания, вопросы к параграфам, картам и документам.

Андрей Вячеславович Абрамов , Михаил Владимирович Пономарев , Сергей Владимирович Тырин

Детская образовательная литература / История / Школьные учебники и пособия, рефераты, шпаргалки / Книги Для Детей / Образование и наука
О станках и калибрах
О станках и калибрах

Все машины — это детища машиностроительных заводов. На этих заводах работают металлообрабатывающие станки — те машины, с помощью которых изготовляются части — детали любых машин: паровозов, автомобилей и самолетов, тракторов и сельскохозяйственных комбайнов, турбин и двигателей внутреннего сгорания, всех рабочих машин, в том числе и самих металлообрабатывающих станков.С помощью станков, созданных советскими инженерами, наш народ сказочно увеличил количество машин на заводах и фабриках и неизмеримо поднял производительность труда в советской промышленности.В наши дни выдающиеся достижения советских станкостроителей служат прочной базой социалистического машиностроения, помогают советским людям в их победоносном шествии к коммунизму. Вот почему к станкостроению и металлообработке приковано особенно пристальное внимание всех советских людей.Рассказам о главных изобретениях и усовершенствованиях в развитии станкостроения и металлообработки и посвящена эта книга.

Зигмунд Наумович Перля

Детская образовательная литература / Технические науки / Книги Для Детей / Образование и наука