Питер Макоуэн - Вычислительное мышление: Метод решения сложных задач
- Название:Вычислительное мышление: Метод решения сложных задач
- Автор:
- Жанр:
- Издательство:Альпина Паблишер
- Год:2017
- Город:Москва
- ISBN:978-5-9614-5020-0
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Питер Макоуэн - Вычислительное мышление: Метод решения сложных задач краткое содержание
Если вы хотите узнать больше о вычислительном мышлении, ищете новые способы стать эффективнее и любите математические игры и головоломки, эта книга для вас. В то же время вы научитесь навыкам, необходимым для программирования и создания новых технологий. Даже если вы не планируете писать программы и изобретать, вы сможете применять навыки вычислительного мышления, чтобы справиться с любыми жизненными проблемами.
Вычислительное мышление: Метод решения сложных задач - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:

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

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

Для этих изображений мы выбираем одну из всего двух цифр на каждый пиксел — 1 или 0, поэтому у нас всего два цвета, белый и черный. Если использовать больше цифр, где каждая будет представлять свой цвет, то можно подобным образом сохранять цветные изображения.
Альтернативное представлениеизображения — сохранить его в виде линий и фигур, из которых оно состоит. Это так называемые векторныеметоды. Мы определяем начальные и конечные точки для тысяч линий и быстро рисуем их на экране. Например, чтобы нарисовать квадрат, вместо обозначения каждого пиксела в сетке вы сохраняете серию инструкций:
Линия (Север, 50)
Линия (Восток, 50)
Линия (Юг, 50)
Линия (Запад, 50)
Чтобы нарисовать изображение, мы просто выполняем инструкции. Такое представлениев целом занимает гораздо меньше места, но у него есть еще одно большое преимущество. Инструкция выше позволяет нарисовать квадрат со стороной 50. Допустим, мы хотим получить изображение в 10 раз больше. В этом случае просто умножаем все значения на 10. Если же мы хотим, чтобы квадрат был в 10 раз меньше, то делим их на 10. Благодаря этому представлениюмы можем увеличить изображение до любого размера, например чтобы показать его на большом экране, но без необходимости хранить еще больше данных и не теряя точности.
Вот почему представлениедиаграмм как в pdf-файлах занимает меньше места и выглядит одинаково хорошо, как бы вы ни увеличивали изображение. В таких файлах хранятся векторные версии. Изображение в формате jpeg требует больше памяти, чтобы сохранить картинку в более высоком разрешении, и при сохранении нужно указать, каким именно оно будет. Вот почему, приближая изображение в формате jpeg, вы видите, что все расплывается и линии становятся неровными.
С помощью векторных методов мы создаем трехмерные формы, объединяя много, порой десятки тысяч, так называемых графических примитивов —сфер, кубов, цилиндров и так далее. Различные комбинации позволяют нам создавать желаемые сложные формы.
Существуют системы, которые симулируют распределение световых лучей в искусственном мире (для этого требуется компьютерное моделирование— на сей раз чтобы показать, как источники света освещают предметы). С их помощью создают фотореалистичные изображения. Кроме того, к нашим графическим примитивам добавляют скрипты, отвечающие за сложные движения персонажей, — их часто создают, снимая движения настоящих актеров, — и таким образом фигуры будут двигаться как мы хотим. Ограничения — это объем доступных вычислительных мощностей, качество кода, который пишут кодировщики-программисты, чтобы графика выглядела еще естественнее, и воображение творческого человеческого разума. Но даже простая сетка и несложные правила кодирования могут дать замечательные результаты.
Жизнь как игра
Давайте начнем с простого — с игры, в которой есть квадратная сетка и набор правил, в зависимости от которых на ней появляются и исчезают пикселы. Значение пиксела меняется и зависит от того, сколько других пикселов находится рядом. Звучит не очень интересно, правда? Но не торопитесь с выводами. Даже в этой простой игре происходит много интересного, и мы используем ее, чтобы кое-что понять о мире природы.
Игра называется «Жизнь», ее автор — математик Джон Конвей. Впервые правила игры были опубликованы в 1970 г., и впоследствии она приобрела популярность у программистов по всему миру. Правила просты, хотя Конвей приложил массу усилий, чтобы их правильно сбалансировать и гарантировать интересный игровой процесс.
Сетка представляет собой небольшой квадратный мир с клетками(пикселами), которые могут присутствовать (быть живыми) и отсутствовать (быть мертвыми). У каждой клетки есть окружение из восьми других, которые непосредственно прилегают к ней по горизонтали, вертикали и диагонали. Чтобы выжить, существующая живая клетка должна иметь два или три живых соседа — этого достаточно для поддержания жизни, но не слишком много. Если у любой живой клетки окажется менее двух соседних, она умрет из-за недостаточной населенности. Подобным образом любая живая клетка, у которой более трех живых соседей, умрет от перенаселения. Наконец, каждая живая клетка, у которой есть три живых соседа, активизируется и имитирует процесс размножения. Эти принципы обобщены в порождающих правилахна рис. 55.

На рис. 56 показан пример такой модели и один жизненный цикл.

Благодаря этой простой математике и простому набору порождающих правил, которые применяются к клеткам на сетке, на игровом поле возникают странные и интересные модели, которые с течением времени меняются. Клетки живут и умирают по заданным правилам.
Вы можете сыграть в эту игру самостоятельно. Для этого понадобится большая сетка. Для начала сгодится шахматная доска, но вы скоро осознаете, что нужно больше пространства. Больше подойдет доска для игры в го, если она у вас найдется. Как вариант, можно нарисовать большую сетку на самом большом листе бумаги, какой вы только найдете. В идеале лист должен быть бесконечным, но тогда он не поместится в вашу спальню… поэтому придется принять, что, если игра дойдет до края доски, нужно будет быстро найти еще место либо признать, что это конец «Жизни» и все ваши существа упадут с края «вселенной».
Читать дальшеИнтервал:
Закладка: