Матрица статей        Список статей        Всячина        Контакты       

Одномерное множество Кантора

Георг Кантор (1845-1918) явился одним из основателей теории множеств. Он также придумал один из старейших фракталов - множество Кантора (описано им в 1883). На Западе подобные множества называют иногда пылью. Заметим, что существование этого фрактала отмечалось до этого Генри Смитом в 1875 году или еще ранее. Это множество хорошо известно как пример множества нулевой меры Лебега, чья мощность равна мощности континуума . Фрактальные свойства пыли Кантора имеют огромное значение, особенно учитывая тот факт, что многие известные фракталы являются близкими родственниками этого фрактала.


Множество Кантора

Способ построения этого множества следующий. Берётся отрезок прямой единичной длины. Затем он делится на три равные части, и вынимается средний отрезок. Это первый шаг итерационной процедуры. На втором шаге подобной процедуре деления на три равные части и последующего удаления середины подвергается каждый из двух оставшихся отрезков. Так продолжая до бесконечности, получим множество Кантора. Нетрудно заметить, что суммарная длина получившихся в пределе отрезков равна нулю, так кам мы исключили в результате длину, равную 1:

program Cantor1;
uses CRT, Graph;
const
	min = 1;
var
	gd, gm : Integer;

procedure Draw(x, y : Real; Size : Real);
var
	s : Real;

begin
	if size > min then 
	begin
		s := size / 3;
		Draw(x, y + 20, s);
		Draw(x + s * 2, y + 20, s);
	end;
	Bar(Round(x), Round(y), Round(x + size), Round(y + 5));
end;

begin
	gd := Detect;
	InitGraph(gd,gm,'');
	Draw(10,30,500);
	ReadKey;
	CloseGraph;
end.

Можно также построить гребень Кантора. Для его построения нужно в предыдущей программе строчку

Bar(Round(x), Round(y), Round(x + size), Round(y + 5));
заменить на
Rectangle(Round(x), Round(y), Round(x + size), Round(y + 20));


Гребень Кантора

Проведём построение более формально на множестве. Берём отрезок единичной длины . Удаляем из него открытый интервал , получая . На следующем и всех остальных шагах вы выкидываем среднюю треть (не включая концы) всех отрезков текущего уровня. Т. о. на втором шаге мы имеем . Предельное множество , которое представляет собой пересечение множеств , , и представляет собой пыль Кантора.

Множество Кантора имеет мощность континуума. Для этого необходимо установить взаимно однозначное соответствие между точками из множества Кантора и точками отрезка . Будем представлять все точки отрезка в виде двоичной дроби, а точки пыли Кантора в виде троичной дроби. В случае, когда точка имеет два представления, мы будем всегда выбирать то, которое заканчивается всеми единицами в двоичном виде и всеми двойками в троичном. Заметим, что точка попадает в множество Кантора тогда и только тогда, когда в ее троичном представлении присутствуют только нули и двойки, поэтому искомое соответствие осуществляется заменой всех двоек в троичном представлении на единицы. Описанная процедура и определяет ваимно однозначное соответствие между множеством Кантора и отрезком .

Непосредственно с множеством Кантора связана чёртова лестница.


Чёртова лестница

program ChL;

uses Crt, Graph;

const
	max = 2187;
  
var
	gd, gm : Integer;
	C      : array [0..max] of Integer;
	i      : Integer;
	x, y   : Integer;
	
procedure Draw(x: Integer; L: Word);

var
	s : Word;
	
begin
	if L > 0 then 
	begin
		s := L div 3;
		Draw(x, s);
		Draw(x + 2*L, s);
	end
	else 
		C[x] := 1;
end;

Begin
	gd := Detect;
	for i:=0 to max do 
		C[i] := 0;
	InitGraph(gd,gm,'c:\bp\bgi');
	Draw(0, max);
	for i := 1 to max do 
		C[i] := C[i-1] + C[i];
	for i := 0 to max do 
	begin
		x := Round(i/max*639);
		y := Round(C[i]/C[max]*479);
		Line(x, 479, x, 479 - y);
	end;
	ReadKey;
	CloseGraph;
end.

Смотрите также:

Ссылки:

  • Р. М. Кроновер. Фракталы и хаос в динамических системах. Основы теории. Москва: Постмаркет, 2000. 38—45,
  • А. Д. Морозов Введение в теорию фракталов. — Москва-Ижевск: Институт компьютерных исследований, 2002. 19—20.
  • Cantor set ,
  • Cantor Set ,
  • Cantor Function .