Interested Article - Треугольник Серпинского

Треугольник Серпинского

Треугольник Серпинского фрактал , один из двумерных аналогов множества Кантора , математическое описание которого опубликовал польский математик Вацлав Серпинский в 1915 году . Также известен как «салфетка» Серпинского.

Построение

Итеративный метод

Построение треугольника Серпинского
Мозаичный пол в стиле косматеско в Кафедральном соборе Св. Марии в Ананьи

Середины сторон равностороннего треугольника соединяются отрезками . Получаются 4 новых треугольника. Из исходного треугольника удаляется внутренность срединного треугольника . Получается множество , состоящее из 3 оставшихся треугольников «первого ранга». Поступая точно так же с каждым из треугольников первого ранга, получим множество , состоящее из 9 равносторонних треугольников второго ранга. Продолжая этот процесс бесконечно, получим бесконечную последовательность , пересечение членов которой есть треугольник Серпинского.

Метод хаоса

1. Задаются координаты аттракторов — вершин исходного треугольника .
2. Вероятностное пространство разбивается на 3 равных части, каждая из которых соответствует одному аттрактору.
3. Задаётся некоторая произвольная начальная точка .
4. Начало цикла построения точек, принадлежащих множеству треугольника Серпинского.
1. Генерируется случайное число .
2. Активным аттрактором становится та вершина, на вероятностное подпространство которой выпало сгенерированное число.
3. Строится точка с новыми координатами: , где:
— координаты предыдущей точки ; — координаты активной точки-аттрактора.
5. Возврат к началу цикла.

Построение на JavaScript

Это нерекурсивный метод построения

Картинка, генерируемая кодом на JavaScript
var k=Math.sqrt(3)/2; var S=16; var H=512; var W=Math.floor(H/k);
document.body.innerHTML=('<canvas id="C" width="'+W+'" height="'+H+'"></canvas>');
var canvas = document.getElementById('C');
var ctx = canvas.getContext('2d');
ctx.fillRect(0, 0, W, H);
for(var x = 0;x<=Math.floor(W/2);x++) {
  for(var y = 0;y<H;y++) {
    var A = y;          var a = A%S;
    var B = y/2+x*k;    var b = B%S;
    var C = y/2-x*k;    var c = C%S;
    if(a>b&&C>0&&B>0) {
      if ((B/S)&(C/S)) ctx.fillStyle='#ff0';
      else ctx.fillStyle='#000';
    } else if(a<b&&C>0&&B>0) {
      ctx.fillStyle='#0f8';
    } else ctx.fillStyle='#fff';
    ctx.fillRect(Math.floor(W/2)-x, y, 1, 1);
    if (x!=0) ctx.fillRect(Math.floor(W/2)+x, y, 1, 1);
  }
}

Построение на C#

Построение на C# в консоли с помощью треугольника паскаля :

using System;

namespace Serpinski 
{ 
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Power of 2: ");
            int depth = Convert.ToInt32(Math.Pow(2d, Convert.ToDouble(Console.ReadLine())));

            int[][] pascaltriangle = new int[depth][];
            for (int i = 0; i < pascaltriangle.Length; i++)
            {
                pascaltriangle[i] = new int[depth];
                for (int j = 0; j < pascaltriangle[i].Length; j++)
                    pascaltriangle[i][j] = 0;
                pascaltriangle[i][0] = 1;
                pascaltriangle[i][i] = 1;
            }

            for (int i = 1; i < pascaltriangle.Length; i++)
                for (int j = 1; j < pascaltriangle[i].Length; j++)
                    pascaltriangle[i][j] = (pascaltriangle[i - 1][j - 1] + pascaltriangle[i - 1][j]) % 2;

            for (int i = 0; i < pascaltriangle.Length; i++)
            {
                for (int j = 0; j < pascaltriangle[i].Length; j++)
                    Console.Write(pascaltriangle[i][j] == 1 ? "#" : " ");
                Console.WriteLine();
            }
            
            Console.Write("Press any key to continue...");
            Console.ReadKey();
        }
    }
}

Свойства

  • Треугольник Серпинского состоит из 3 одинаковых частей, коэффициент подобия 1/2.
  • Треугольник Серпинского замкнут .
  • Треугольник Серпинского имеет топологическую размерность 1.
  • Важным свойством треугольника Серпинского является его самоподобие — ведь он состоит из трёх своих копий, уменьшенных в два раза (это части треугольника Серпинского, содержащиеся в маленьких треугольниках, примыкающих к углам).
  • Треугольник Серпинского имеет промежуточную (то есть нецелую) Хаусдорфову размерность . В частности,

Факты

Римская мозаика 3 — 4 столетия в античном музее города Арль , Франция

См. также

Примечания

  1. W. Sierpinski, Sur une courbe dont tout point est un point de ramification.//Comptes rendus hebdomadaires des séances de l'Académie des sciences. - Paris. – Tome 160, Janvier - Juin 1915. - Pp. 302 – 305. - от 6 августа 2020 на Wayback Machine ]
  2. Bilotta, Eleonora; Pantano, Pietro (Summer 2005), "Emergent patterning phenomena in 2D cellular automata", Artificial Life, 11 (3): 339–362, doi:10.1162/1064546054407167, , S2CID 7842605.
  3. Слюсар В. И. Фрактальные антенны. // Радиоаматор. — 2002. — № 9. — С. 54 −56., Конструктор. — 2002. — № 8. — С. 6 — 8. от 19 февраля 2018 на Wayback Machine
  4. Вишневский В. М., Ляхов А. И., Портной С. Л., Шахнович И. В. Широкополосные беспроводные сети передачи информации. — М.: Техносфера. — 2005.- C. 498—569
  5. The grammar of ornament. Day and Son, London. — 1856.
  6. Conversano Elisa, Tedeschini Lalli Laura. Sierpinsky triangles in stone, on medieval floors in Rome.// Aplimat — Journal of Applied Mathematics. Volume 4 (2011), Number 4. — P. 113—122. —
  7. Paola Brunori, Paola Magrone, and Laura Tedeschini Lalli. Imperial Porphiry and Golden Leaf: Sierpinski Triangle in a Medieval Roman Cloister.//ICGG 2018 — Proceedings of the 18th International Conference on Geometry and Graphics. — Pp. 595—609. -

Литература

  • Абачиев С. К. О треугольнике Паскаля, простых делителях и фрактальных структурах // В мире науки, 1989, № 9.

Ссылки

Источник —

Same as Треугольник Серпинского