Чтение онлайн

на главную - закладки

Жанры

Шрифт:

Остались две работы — Кирилла Мишачева и Игоря Тырнова. Обе — замечательные, без единой ошибки, ясные и, что тоже важно, краткие. Ведь чем короче программа, тем легче в ней разобраться и тем проще ее изменить, если понадобится.

Вот, например, программа Кирилла для чистки картошки.

Возьми картошку и ПОЧИСТЬ (картошку),

а теперь ВЫРЕЖЬ ГЛАЗКИ'.

КОНЕЦ.

Подпрограмма
ВЫРЕЖЬ ГЛАЗКИ'.

Если глазки вырезаны, то возврат,

иначе вырежь один глазок и ВЫРЕЖЬ ГЛАЗКИ'.

Подпрограмма ПОЧИСТЬ (картошку).

Если картошка почищена, то возврат,

иначе срежь кусочек кожуры и ПОЧИСТЬ (остаток картошки).

Прекрасный пример рекурсивной программы! Эта программа особенно понравилась Чипу, который вообще неравнодушен к рекурсивным программам и считает, что за ними будущее.

А Сереже больше понравилась программа Игоря про жирафа. Он прислал даже два варианта программы. Первый такой:

1. Если вам уже купили жирафа, то конец,

иначе продолжайте дальше.

2. Сейчас N = 1.

3. Принеси домой N кошек.

4. Если мама тебя отругала или выбросила кошек на улицу, увеличь N в два раза.

5. Попроси маму купить жирафа.

6. Если мама купила жирафа, то конец,

иначе переходи к строке 3.

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

— А смотри, что пишет про жирафа Кирилл:

Рекурсивная программа ЖИРАФ.

Чуть-чуть подумай.

Если не понял, почему не надо покупать жирафа, то ЖИРАФ,

а если понял, то КОНЕЦ.

По этой программе ты будешь думать, пока не поймешь, почему не надо покупать жирафа.

Они еще долго спорили и пришли к выводу, что обе эти работы заслуживают первого приза, но работа Кирилла чуть лучше, поскольку он свободно пишет рекурсивные программы и двойные циклы (это он сделал в своей сказке про зайца, которого выгнала из избушки лиса).

Поэтому было решено наградить их обоих калькуляторами: Кириллу дарит калькулятор британская фирма «Джеральд компьютерс», а Игорь получит советский калькулятор «Электроника». Вот фотографии победителей.

Остальные

призеры награждены почетными грамотами. Ну, а те, кому на этот раз не удалось получить первый приз, пусть не вешают носа. Готовьтесь к конкурсу 1987 года!

Как угадать день рождения друга и вывести братьев из Болота Ошибок

Сережа с Чипом болтали о всякой всячине, когда Чип неожиданно спросил:

— Кстати, а когда у тебя день рождения?

— А вот угадай! — поддразнил его Сережа. — Или вычисли, если можешь, ты же компьютер.

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

— Ну, и сколько ты будешь гадать? До вечера-то успеешь?

— Месяц отгадаю после трех вопросов, а день — самое большее после четырех. Спорим? Тогда я начинаю. Июнь?

— Недолет!

— Сентябрь?

— Недолет!

— Ноябрь?

— Недолет!

— Значит, декабрь. Теперь день. 16-е?

— Недолет!

— 24-е?

— Перелет!

— 20-е?

— Недолет!

— 22-е?

— Попал! Это тебе повезло, Чип, а то бы ты дольше гадал.

— Наоборот, мне не повезло. Моим методом, вернее, по моему алгоритму, любой месяц угадывается после трех вопросов, а любой день после четырех, но иногда получается быстрее. Например, если бы ты родился 24 ноября, то число и месяц рождения я угадал бы после пяти вопросов, а не после семи, как сейчас, а если бы ты родился 16 июня — то после двух.

— А если бы я родился на день позже, 23 декабря?

— Тогда бы ты ответил: «Недолет», — на последний вопрос, и я уже точно знал бы, что это 23-го, поскольку 24-го был перелет.

— Это что, все предыдущие ответы помнить? Это надо быть компьютером!

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

— Знаешь, месяц меня не так удивляет, ведь их всего 12, а вот что ты один день из 31 узнал за 4 вопроса, это здорово. Значит, ты сначала проверил середину — это 16, а потом остались три вопроса, и ты угадал один из 16 дней. А, пожалуй, не так уж и странно: 16 делим пополам, это 8, еще раз пополам, это 4, а дальше остаются 3 числа, которые угадываются за 1 вопрос. Получается, что с месяцами твой алгоритм работал не в полную силу: если бы их было 16, тебе тоже хватило бы трех вопросов.

Поделиться:
Популярные книги

Душелов. Том 4

Faded Emory
4. Внутренние демоны
Фантастика:
юмористическая фантастика
ранобэ
фэнтези
фантастика: прочее
хентай
эпическая фантастика
5.00
рейтинг книги
Душелов. Том 4

На границе империй. Том 9. Часть 3

INDIGO
16. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 3

Болтливый мертвец

Фрай Макс
7. Лабиринты Ехо
Фантастика:
фэнтези
9.41
рейтинг книги
Болтливый мертвец

Убивать чтобы жить 2

Бор Жорж
2. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 2

Двойня для босса. Стерильные чувства

Лесневская Вероника
Любовные романы:
современные любовные романы
6.90
рейтинг книги
Двойня для босса. Стерильные чувства

Отверженный IX: Большой проигрыш

Опсокополос Алексис
9. Отверженный
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Отверженный IX: Большой проигрыш

Возвышение Меркурия. Книга 12

Кронос Александр
12. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 12

Жена проклятого некроманта

Рахманова Диана
Фантастика:
фэнтези
6.60
рейтинг книги
Жена проклятого некроманта

Идеальный мир для Лекаря 3

Сапфир Олег
3. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 3

Ученик

Первухин Андрей Евгеньевич
1. Ученик
Фантастика:
фэнтези
6.20
рейтинг книги
Ученик

Внебрачный сын Миллиардера

Громова Арина
Любовные романы:
современные любовные романы
короткие любовные романы
5.00
рейтинг книги
Внебрачный сын Миллиардера

Хозяйка Проклятой Пустоши. Книга 2

Белецкая Наталья
2. Хозяйка Проклятой Пустоши
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка Проклятой Пустоши. Книга 2

Имя нам Легион. Том 7

Дорничев Дмитрий
7. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 7

Драконий подарок

Суббота Светлана
1. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
7.30
рейтинг книги
Драконий подарок