Меню
Главная
Случайная статья
Настройки
|
Треугольник Серпинского — фрактал, один из двумерных аналогов множества Кантора, математическое описание которого опубликовал польский математик Вацлав Серпинский в 1915 году[1].
Также известен как «салфетка» Серпинского.
На основе треугольника Серпинского могут быть изготовлены многодиапазонные фрактальные антенны.[2][3]
Образования, похожие на треугольник Серпинского, возникают при эволюции многих конечных автоматов, подобных игре Жизнь[4].
В 2024 году Международная команда исследователей сообщила об открытии белка цитратсинтазы в цианобактерии Synechococcus elongatus[англ.], который самоорганизуется в треугольник Серпинского, это первый известный молекулярный фрактал[5].
Содержание
Построение
Итеративный метод
Середины сторон равностороннего треугольника соединяются отрезками. Получаются 4 новых треугольника. Из исходного треугольника удаляется внутренность срединного треугольника. Получается множество , состоящее из 3 оставшихся треугольников «первого ранга». Поступая точно так же с каждым из треугольников первого ранга, получим множество , состоящее из 9 равносторонних треугольников второго ранга. Продолжая этот процесс бесконечно, получим бесконечную последовательность , пересечение членов которой есть треугольник Серпинского.
Метод хаоса- 1. Задаются координаты аттракторов — вершин исходного треугольника .
- 2. Вероятностное пространство разбивается на 3 равных части, каждая из которых соответствует одному аттрактору.
- 3. Задаётся некоторая произвольная начальная точка .
- 4. Начало цикла построения точек, принадлежащих множеству треугольника Серпинского.
- 1. Генерируется случайное число .
- 2. Активным аттрактором становится та вершина, на вероятностное подпространство которой выпало сгенерированное число.
- 3. Строится точка с новыми координатами: , где:
- — координаты предыдущей точки ; — координаты активной точки-аттрактора.
- 5. Возврат к началу цикла.
Свойства- Треугольник Серпинского состоит из 3 одинаковых частей, коэффициент подобия 1/2.
- Треугольник Серпинского замкнут.
- Треугольник Серпинского имеет топологическую размерность 1.
- Треугольник Серпинского обладает самоподобием
- Треугольник Серпинского имеет промежуточную (то есть нецелую) Хаусдорфову размерность . В частности,
- Если в треугольнике Паскаля все нечётные числа окрасить в чёрный цвет, а чётные — в белый, то образуется треугольник Серпинского.
В искусстве
-
-
Римская мозаика 3 — 4 столетия в античном музее города Арль, Франция
Реализации
JavaScript (html5)
Аппроксимация квадратами
let k = Math.sqrt(3)/2, S = 16, H = 512, W = Math.floor(H/k);
let canvas = document.createElement("canvas");
let ctx = canvas.getContext('2d');
document.body.append(canvas);
canvas.width = W;
canvas.height = H;
ctx.fillRect(0, 0, W, H);
for(let x = 0; x <= Math.floor(W/2); x++) {
for(let y = 0; y < H; y++) {
let A = y, a = A%S;
let B = y/2+x*k, b = B%S;
let C = y/2-x*k, 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);
}
}
const depth = 7;
const basecolor = "black";
const fillcolor = "white";
// ain't iteration a bit nicer via timer?
// (calculations become smooth & async)
const timestep = 300; // ms
// define html5 canvas
const width = 700; // px
const canv = document.createElement("canvas");
const ctx = canv.getContext("2d");
// don't wish to deal with right triangles, so just re-scale canv style
canv.width = width;
canv.height = width;
canv.style.height = width*Math.sqrt(3)/2;
canv.style.width = width;
document.body.append(canv);
let triangle = (x, y, w, color=fillcolor, r=false) => {
// take square coordinates and width for simplycity
// also (r)otate triangle if needed, V by default
ctx.beginPath();
ctx.moveTo(x + w/2, r? y : width-y);
ctx.lineTo(x + w, r? (w + y) : width- (y + w) );
ctx.lineTo(x, r? (w + y) : width- (y + w) );
ctx.fillStyle = color;
ctx.fill();
ctx.closePath();
}
let recstep = (x, y, wi, de) => {
if (de < depth) {
triangle(x+ wi/4, y, wi/2);
// paint the triangle in center of given square
// split to three squares pyramide
// recursively paint each square of pyramide
setTimeout(() => {
recstep(x, y, wi/2, de+1);
recstep(x+wi/2, y, wi/2, de+1);
recstep(x + wi/4, y + wi/2, wi/2, de+1);
}, timestep);
}
}
triangle(0, 0, width, basecolor, true);
recstep(0, 0, width, 0);
Построение на 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();
}
}
}
Галерея
См. также
Примечания
- W. Sierpinski, Sur une courbe dont tout point est un point de ramification.//Comptes rendus hebdomadaires des sances de l’Acadmie des sciences. — Paris. — Tome 160, Janvier — Juin 1915. — Pp. 302—305. — [1]Архивная копия от 6 августа 2020 на Wayback Machine
- Слюсар В. И. Фрактальные антенны. // Радиоаматор. — 2002. — № 9. — С. 54 56., Конструктор. — 2002. — № 8. — С. 6 — 8. [2] Архивная копия от 19 февраля 2018 на Wayback Machine
- Вишневский В. М., Ляхов А. И., Портной С. Л., Шахнович И. В. Широкополосные беспроводные сети передачи информации. — М.: Техносфера. — 2005.- C. 498—569
- Bilotta, Eleonora; Pantano, Pietro (Summer 2005), «Emergent patterning phenomena in 2D cellular automata», Artificial Life, 11 (3): 339—362, doi:10.1162/1064546054407167, PMID 16053574, S2CID 7842605.
- Посмотрите, в какой узор собираются молекулы внутри одной бактерии. Но зачем нужны эти треугольники-фракталы? | Вокруг Света (неопр.). Дата обращения: 19 апреля 2024. Архивировано 19 апреля 2024 года.
- 1 2 The grammar of ornament. Day and Son, London. — 1856
- 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. — [3]
- 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. -[4]
Литература
Ссылки
|
|