Игры с Чипом
Шрифт:
— Да, вы правы, милая герцогиня, но нельзя при этом отрицать, что пару раз она нам помогла. Позвать сюда Алису!
— Только и всего? — рассмеялась Алиса, услышав стишок. — Но тут же ясно сказано, как надо сражаться: по двое, все одновременно, а проигравший выбывает. И займет это... дайте подумать...»
— А пока Алиса думает, — продолжал Чип, — мне хотелось бы показать тебе одно письмо. Нас ругает сердитый семиклассник из города Свалява Закарпатской области, который не указал своего имени и обратного
— Прекрасно, — подхватил Сережа, — пусть он нам напишет программу турнира Чеширского кота на любом языке. А чтобы письмо этого сердитого читателя не затерялось в нашей большой почте, на конверте пусть он поставит фразу: «Чип, это я»— и обведет ее рамочкой. Впрочем, все ребята тоже могут принять участие в конкурсе, только на конверте пусть просто напишут «Турнир».
ОТ РЕДАКЦИИ:
Ребята! В № 6 за этот год вы увидели фотографии победителей «Конкурса Чипа». А вот как выглядит ПРОГРАММИРУЕМЫЙ НАУЧНЫЙ КАЛЬКУЛЯТОР — приз Кирилла Мишачева.
Такому калькулятору можно задать 40 команд, и он выполнит их все подряд. Например, если вам в школе дали на дом 20 задач на умножение простых дробей, решите на калькуляторе только первую задачу, а с остальными он справится сам, вам останется только вводить в него числа.
Этот калькулятор умеет решать многое из того, что знают старшеклассники и студенты. А младшие школьники могут с ним играть в «Чет — нечет», «20 спичек и монетку» и другие игры. Калькулятор ни разу не ошибется и всегда обыграет вас.
В № 12 за этот год Чип объявит новый БОЛЬШОЙ КОНКУРС. Победителей конкурса ждут призы — КАЛЬКУЛЯТОРЫ.
Вы готовы принять участие в конкурсе?
Случайные числа
— Чип, а не скучно вам, компьютерам, все время иметь дело с числами? Все заранее известно, никаких неожиданностей и случайностей.
— А ты знаешь, что самые сложные задачи, которые решаются на компьютерах — называются они моделирование больших систем, — основаны именно на случайных числах?
— Как это? Я думаю, что чем сложнее система, тем больше приходится считать. А при чем же тут случайные числа?
— Случайные числа не нужны для точных расчетов, но они нужны, чтобы моделировать случайные процессы. А таких процессов великое множество: почти все явления природы и человеческой жизни. Например, голубой цвет неба связан с тем, что лучи других цветов, сильнее рассеиваясь на случайно расположенных молекулах в атмосфере, не достигают наших глаз. Другой пример, из жизни. Как прогнозировать образование очередей или транспортных пробок? Это тоже случайные процессы, поскольку каждый человек принимает решения по одному ему известным соображениям.
— Так что же, получается полный хаос? — Сережа вставил новое слово, которое он недавно где-то услышал. — Может быть так, а может быть иначе? Чем же тут поможет компьютер?
— А компьютер поможет сосчитать вероятности того, будет это так или иначе.
— И как же компьютер это сделает?
— Ну, возьмем простой пример случайного процесса. Когда ты после телефонного разговора вешаешь телефонную трубку, ты обычно не смотришь, как закручен провод, верно? Поэтому после каждого нового разговора он может либо закрутиться еще на один оборот, либо остаться на месте, либо раскрутиться назад на один оборот.
— Он еще может совсем раскрутиться, если папа заметит, что провод слишком сильно закрутился, и не поленится его раскрутить.
— Давай для начала пренебрежем таким редким событием, а остальные три варианта — шаг вперед, шаг назад и шаг на месте — будем считать равновероятными. Это целая наука, как получать на компьютере случайные числа, — для этого лучшие программисты придумывают самые быстрые алгоритмы. Ну, а мы с тобой можем воспользоваться сейчас игральным кубиком. На нем ведь шесть чисел: 1, 2, 3, 4, 5, 6. Давай будем делать шаг назад, если на кубике выпадет 1 или 2, оставаться на месте, если это 3 или 4, и делать шаг вперед, если это 5 или 6.
— Давай. Ты будешь складывать шаги, а я буду кидать кубик, — оживился Сережа, которому немного наскучили лекции Чипа и захотелось поиграть.
Сережа бросил кубик. Выпало 5, и он крикнул Чипу: «Вперед!» «Один!» — крикнул в ответ Чип.
Сережа кинул кубик еще раз. «Стой!» — крикнул он, потому что выпало 3. «Один!» — повторил Чип предыдущий счет. Дальше дело пошло быстрее: «Вперед!» «Два». «Назад!» «Один». «Стой!» «Один» «Вперед!» «Два». «Вперед!» «Три». «Стой!» «Три». «Вперед!» «Четыре». «Назад!» «Три».
— Ну, что, — сказал Чип,— мы бросили кубик 10 раз и сдвинулись вперед на 3 шага. Значит, провод закрутился бы на 3 оборота. Будем считать, что после каждых 10 звонков папа проверяет провод и раскручивает его. Начнем все сначала.
Они кинули кубик еще 10 раз. Теперь получилось в сумме 2 шага назад, то есть провод закрутился бы на два оборота в другую сторону. Еще и еще кидали они кубик, и получилось, что за 10 бросаний кубика суммарное число шагов бывало в среднем 3 — 4, а направление бывало разным — иногда вперед, а иногда назад. Всего они сделали 10 опытов по 10 бросаний, и в 5 опытах было положительное направление, в 4 — отрицательное, а в одном опыте после всех 10 бросаний кубика получился нуль, так что провод совсем бы не закрутился. Но это, конечно, была редкая удача.
— Видишь, — сказал Чип, — кое-что мы поняли. Ваш телефонный провод будет со временем закручиваться, иногда в одну, а иногда в другую сторону, но количество оборотов будет расти, так что папе время от времени придется его раскручивать обратно. А если бы мы с тобой бросили кубик миллиард раз вместо ста, то смогли бы точно подсчитать, как величина закрутки зависит от времени и как часто папе придется раскручивать провод. Вот для того, чтобы быстро сделать миллиард таких испытаний, и нужен компьютер. Кстати, в этом простом случае и без компьютера можно предсказать, что величина закрутки провода будет расти, как корень квадратный из времени.