Отношения с числами. Игра в хаос.
ali-ben-saef — 19.07.2024Задание #6 от nely_snork вернуло меня во времена сорокалетней давности, когда я преподавал информатику в школе в качестве факультатива.
Забегая вперед, скажу, что ничего сложного в нижеизложенном нет, оно было доступно даже старшеклассникам тех лет, а для нынешних подростков это совсем уж элементарная азбука.
Все это всяко проще, чем построение последовательности Фибоначчи, о которой пишет Нелли.
Итак, возьмем три точки на плоскости, не лежащие на прямой.
Они образуют треугольник ABC.
Выберем произвольную точку X0 внутри треyгольника.
Построим последовательность точек X1, X2, X3, ... следующим образом.
Имея точку Xn, выберем случайным образом одну из точек A, B, C.
Следующая точка последовательности вычисляется как середина отрезка, соединяющего Xn с этой случайно выбранной вершиной A, B или C.
На рисунке 1 точка X1 — это середина отрезка (X0,C), точка X2 — середина отрезка (X1,B), и т.д....
На первый взгляд, кажется, что точки последовательности будут хаотично разбросаны внутри треугольника ABC; однако, это не так.
На самом деле получается фигура, называемая треугольником Серпинского:
Программа на Паскале, которая строит последовательность и отображает ее на экране, выглядит так:
В те былинные времена, сорок лет назад, среда TurboPascal была популярна; ностальгирующие могут скачать бесплатную работающую под современным Windows версию здесь.
Для юных поколений в конце поста будет реализация на KOTLIN под Android, а также GeoGebra.
Вернемся к треугольнику Серпинского.
За этим построением лежит весьма серьезная математика, но в данном конкретном случае все можно объяснить на пальцах.
Это проще пареной репы.
Итак, отметим середины сторон треугольника, и соединим их отрезками.
Где бы ни находилась точка X0 внутри ABC, X1 и все последующие могут оказаться в одном из треугольников AED, EBF, или DFC, но никак не в EDF.
В самом деле, если выбрана вершина A, то следующая точка будет внутри AED; если вершина B — то мы попадем внутрь EBF; наконец, в случае выбора C, на следующем этапе мы окажемся внутри DFC.
На следующем шаге отметим середины маленьких треугольников и соединим их отрезками.
Нетрудно убедиться, что, поскольку X1 находится в одном из треугольников AED, EBF, или DFC, то X2 и все последующие точки последовательности никак не попадут в HGI, KJM, MNO — они, как и EDF, окажутся пустыми для всех следующих членов последовательности.
Продолжая в том же духе, становится очевидным, что все серединки все более мелких треугольников, не могут содержать членов последовательности начиная с некоторого n.
Вот, собственно, и все.
Как было показано выше, программа для построения треугольника Серпинского составляет 25 строчек.
На KOTLIN она примерно такой же длины.
Надо, конечно, определить вспомогательный класс class cBoardView, который позволяет видеть все происходящее в реальном времени.
Но этот класс скорее котлино-андроидовский, чем математический.
На платежном терминале это выглядит довольно забавно.
Можно все это смоделировать и на GeoGebra — тыц:
После такого начала детки начинают внимательно слушать.
Далее таким же манером строятся и более замысловатые фигуры.
Здесь всего лишь нужно поменять коэффициенты сжатия и добавить повороты в преобразования.
Для построения листа папоротника Барнсли требуется четвертое преобразование.
После таких построений начинаешь смотреть на природу другими глазами.
Оказывается, что и кривые можно строить таким же точно способом.
И, совершенно неожиданно, кривые Безье можно получить из игры в хаос.
Здесь верхняя кривая построена классическим вычислением по формуле через равные интервалы.
Посередине применялся алгоритм Кастельжо.
А нижняя кривая — результат игра в хаос.
Напоследок — еще один результат игры в хаос, в котором читатель без труда узнает вейвлет Daubechies D4:
Дети слушали меня с интересом.
Были такие, кто выбрал профессию в области информатики после моего кружка.
Некоторые из учеников добились успеха в жизни.
Кто-то работает в Калифорнии, кто-то в Англии.
А одна девушка даже завоевала главный приз в германском аналоге конкурса «А ну-ка, девушки».
Справедливости ради, не всеми своими достижениями они обязаны мне.
|
</> |