Кантор создал теорию множеств и "никто не изгонит нас из рая, созданного для нас Кантором", как сказал Д. Гильберт. Возникла опора для более или менее строгих рассуждений, и появилась возможность делать некоторые любопытные математические построения. А есть такой принцип, что все, что в математике существует, чему-то так или иначе в реальном мире соответствует. Вот и давайте посмотрим, что бывает.
Берем отрезок [0,1] и удаляем середину: интервал (1/3, 2/3). Концы не удаляем. Потом рекурсивно поступаем так с двумя оставшимися отрезками.
Получается циклический процесс, который, однако, весь отрезок не исчерпает; в пределе кое-что останется (хотя бы концы выкидываемых интервалов). Вот то, что осталось, и есть канторово множество.
Можно перейти в троичную систему счисления, в которой цифры только 0, 1 и 2, и числа из [0,1] разложены по отрицательным степеням тройки. Канторово множество содержит числа, в которых нет цифры 1. С оговорками, правда: 1/3 запишется либо как 0.1, либо как 0.0(2), а 2/3 — как 0.2 либо как 0.1(2). Число удаляется, если в любой его записи есть хоть одна единичка.
Ясно, хотя и удивительно, что в канторовом множестве находятся не только концы выкидываемых интервалов. Ведь множество этих концов счетно, а канторово множество — нет.
Несчетность канторова множества легко установить: числа в нем в троичной записи содержат только цифры 0 и 2; замените 2 на 1 и трактуйте это как двоичное разложение. Получите весь отрезок! Один к одному, без повторов, регистрации и СМС.
Еще раз: чисел в канторовом множестве столько же, сколько на всем отрезке! Точки отрезка можно "пересчитать" точками дырявого канторового множества, которое не занимает никакого места.
Да, его мера равна нулю. Это легко установить, подсчитав длину выкидываемых интервалов. На каждом шаге вдвое больше интервалов, длина каждого в три раза меньше. То есть, выкидывается на каждом шаге 2/3 от предыдущего шага. На первом шаге выкидывается треть. Сложим все (это прогрессия со знаменателем 2/3) и получим 1. Выкидывается вся длина.
Получается множество точек, не занимающее на отрезке никакой длины, при этом точек там столько же, сколько и на всем отрезке.
Множество это нигде не плотно: в его замыкании нет ни одного отрезка. Можно усилить результат, выкидывая каждый раз не треть, а на каждом шаге все меньше, и тогда можно удалить не всю длину, а ее часть. Например, если выкидывать на шаге номер n из каждого оставшегося отрезочка серединку длиной "0.25 в степени n", то полученное множество тоже будет нигде не плотным, но иметь длину (меру) 0.5.
Вдумайтесь: на отрезке точки лежат "раздельно", даже самый маленький отрезок в множество не помещается, а длина у них есть.
Можно построить множество, которое не будет содержать рациональных точек (кроме 0 и 1), пересчитав их и каждый раз растягивая один из выкидываемых интервалов так, чтобы туда попало очередное рациональное число.
Можно еще жестче: вычислимые числа счетны. Вычислимые, это те, которые можно генерировать цифра за цифрой некоторым алгоритмом, а алгоритм — это просто текст. С учетом кодировки текста, алгоритм это просто целое число. Да, любые ошибки в программе допустимы, и много программ вычисляют одно и то же число, но все равно, вычислимых чисел счетное множество. Можно построить канторово множество из одних невычислимых чисел, что довольно забавно.
А если выкидывать не интервалы, а отрезки: вместе с концами? Получится канторово множество за вычетом концов выкидываемых интервалов (а этих концов счетное множество). Состоит оно из чисел, во всех вариантах троичной записи которых нет единичек. Например, 0.(20). Конечных дробей не будет.
Наконец, у множества кантора есть размерность: фрактальная, но все-таки. Определяется она как предел отношения логарифма числа кубиков с ребром ε, необходимых для покрытия множества, к логарифму ε, при ε→0. Еще знак надо поменять. Для отрезков, понятное дело, число "кубиков" (отрезков) растет как 1/ε, что дает единицу. Для плоских множеств число квадратиков растет как ε², что приводит к размерности 2. Для канторова множества удобно ε уменьшать втрое на каждом шаге, и таких отрезков надо всегда вдвое больше, чем на предыдущем шаге. В итоге получается размерность -ln(2)/ln(3)≈0.6309.
Канторово множество служит основой для дальнейших построений, многие из которых вылезают и в реальный мир. Но об этом в другой раз!