Так, с самым большим имеющим смысл числом (я про число Грэма) мы уже знакомились. Мозг понапрягали, поморщили, попытались представить себе этот объём. Но теперь, я думаю, вы немного отошли и значит, давайте опять устроим вашему рациональному мозгу очередной сеанс карательной математики. И сразу замахнёмся на бесконечность! И дальше, да, спасибо тебе Базз за девиз. Короче, добро пожаловать в «Отель Гилберта». Назван в честь немецкого математика 1920-х годов Дэвида Гилберта. Однажды, этот замечательный человек, решил показать людям, насколько сложно осознать концепцию бесконечности и как далеко понимание этого термина, от народа... в смысле от попыток понять её с нашей рациональной точки зрения. И в качестве иллюстрации придумал мысленный эксперимент с отелем, который учёный представил на одной из своих лекций. Однако для большинства этот парадокс стал известен после того, как широкой публике о приколюхе рассказал Георгий Гамов в книге 1947 года «Тридцать лет, которые потрясли физику». Там он описал тот самый отель с оптимистичным девизом — «у нас всегда есть свободные номера, даже если все они заняты». Откуда такая уверенность владельцев этого отеля? Потому что в нём просто бесконечное (буквально) количество номеров. И давайте, посмотрим, как это работает. Начнём с самого простого. С открытия гостиницы.
Заведение распахнуло свои двери и туда поселился один человек. Пока всё просто. Он занимает комнату под номером 1. Потом приходит второй посетитель и селится в комнату 2. И так далее. Но вот, предположим, что у нас набежало бесконечное количество постояльцев и весь отель заполнен! Пора бы уже подсчитывать огромную, просто бесконечную, кучу денег. Но, внезапно начинаются сложности. К нам приходит ещё один посетитель, и говорит: я хочу снять комнату. Но у нас бесконечный отель уже забит посетителями. Мест, кажется, что и нет! Но, мы помним девиз нашего отеля? Консьерж просто просит всех постояльцев переехать в тот номер, который расположен по соседству. То есть гость из комнаты 1, переезжает во вторую комнату и так далее. И вот, заглянувший на огонёк становится дорогим постояльцем комнаты с номером 1. Теперь, даже если к гостинице подрулит автобус с сотней человек, вы знаете, что делать! Просто в два часа ночи поднимаете с постели всю бесконечность гостей и просим их сместиться на сто номеров по соседству. То есть в n+100. Всё логично. Количество денег увеличилось на 101. Мы подсчитываем прибыль и радуем владельцев.
Но теперь внезапно вопрос сложнее. Ведь только что на стоянку приехал целый бесконечный автобус, который полностью забит пассажирами. Все они сидят на креслах от 0 до ∞. Проще говоря — у нас только что образовалось новая бесконечность посетителей. Куда переселять всех гостей? В комнату n+∞? Но как об этом сообщить постояльцу в три часа ночи? Ему нужна чёткая инструкция, в какой номер переехать. Но мы не зря нашли умного управляющего. Он прекрасно помнит, что у нас есть бесконечное количество как чётных, так и нечётных чисел. И вот вам самое простое решение. Гости переезжают в номер, который равняется 2n. То есть постоялец первой комнаты переезжает во вторую, из комнаты 2 в четвёртую, из 3 — в шестую и так далее. Получается, что все текущие постояльцы занимают все чётные комнаты. Ну а в освободившуюся бесконечность нечётных номеров должны поселиться все пассажиры автобуса... Вот такой вот забавный парадокс. Оказывается, мы спокойно можем в одну бесконечность, запихать другую бесконечность. Всем спасибо, все — свободны. Парадокс тольк...
Так, стоп, это что за шум такой жуткий? О нет! Это новое испытание для психики, мозга и воображения консьержа. К нам едет бесконечное количество автобусов, аналогичных тому, что сейчас разгружается на стоянке рядом с гостиницей. То есть бесконечность бесконечностей. Урониться и не встать. Что же теперь делать нашему сотруднику? Пока мы будем расселять один автобус по той же схеме, пассажиры других будут сидеть и тупить? Как же поступить? Какой алгоритм использовать? На самом деле, здесь тоже есть несколько способов. Например, метод степени простого числа. Берём и всех постояльцев из комнаты n (number) переселяем в номер 2^n, то есть в 2 в степени n. Гость из первой комнаты переезжает во вторую, из второй в четвёртую, из третьего — в восьмой и так далее. А теперь каждому автобусу присваиваем своё простое число (3, 5, 7, 11, 13, 17 и так далее, на всех хватит — у нас их тоже бесконечность) и заселяем пассажиров в определённые комнаты, основываясь на номере автобуса. Выдаём каждому приехавшему памятку с «адресом комнаты». И он будет выглядеть так: номер автобуса в степени номера кресла (3^n для первого автобуса, 5^n для второго), которое занимал этот пассажир. И по основной теореме арифметике номера комнат не будут совпадать (просто поверьте). К сожалению, подобный метод будет затратным для отеля, так как у нас останется слишком много свободных комнат — те, номера которых не являются степенью простого числа — а их вполне себе достаточно.
Второй способ справиться с бесконечным потоком взять все наши транспорты и сказать — номер автобуса b (bus), а у гостиницы это число будет равно нулю, а ещё есть место n внутри автобуса. И вот теперь мы берём и назначаем каждому человеку комнату 2^b*3^n. То есть гость из четвёртой комнаты в отеле должен переехать в... подсчитаем... 2^0*3^4 = 81. А из шестого автобуса и третьего места поселится в номер (2^6*3^3) = 64* 27 = 1728. Но у нас всё ещё останутся пустующие помещения. Вновь не получилось. Зато инструкции для гостей и постояльцев вполне себе чёткие и понятные. Но вот вам прекрасный способ, позволяющий не оставлять незанятых комнат. Вновь берём номер автобуса и номер места, где сидит наш гость, и комбинируем их методом чередования. Вот, например, у пассажира есть автобус 345 и место 789. И, значит, ему нужно будет занять комнату с номером 374859. Если не хватает разрядов, то мы добавляем к началу более короткого числа 0. То есть, человек из автобуса 12 и с кресла 93573 отправится в номер 09030501723. Ну и да, здесь опять мы считаем, что отель — это такой же бесконечный автобус, просто с номером 0. И этот способ гарантирует нам, что все комнаты в отеле будут заселены. Вот оно! Отличный метод. Фух... мы разобрались с этими? Но... Чу! Что это? Блин, я забыл сказать, что наш отель стоит на берегу моря и к нам приближаются бесконечное количество паромов, на каждом из которых стоит бесконечное количество автобусов с... да, вы догадались, бесконечным количеством пассажиров. И как теперь быть?
На самом деле, сейчас всё гораздо проще будет — мы можем использовать все те же способы, что и в предыдущем случае, только добавляем ещё и номер парома (p). И для этого подойдёт метод факторизации простых чисел 2^p*3^b*5^n или чередование (то есть смешиваем уже не два, а три числа). И так можно поступать даже с бесконечным количеством морей (s), на которых к нам прибывают бесконечное количество паромов с бесконечным количеством автобусов с бесконечным количеством пассажиров 2^s*3^p*5^b*7^n. Всё. Задача решена для любого количества бесконечностей. А ещё мы выяснили, что лозунг нашего отеля нас не подвёл... «В каждой комнате находится постоялец», и «в гостинице всегда есть место для ещё одного гостя» — в случае с бесконечностью теряют взаимоисключаемость. Как бы подобное ни ломало ваш мозг. На этом мы прощаем... Так, стоп. Это что ещё за шум?
А, всего лишь ещё один автобус с бесконечным количеством пассажиров, сейчас секунду, мы с ними разделаемся и вернёмся для прощания с вами. Ничего страшного. Наш консьерж без проблем с бесконечными морями разбирался, а здесь — всего-то бесконечный автобус. Так, что там у нас? Хм... странно. В нём бесконечное количество робопассажиров, но у всех есть имена из двух цифр — 0 и 1. Число этих символов в каждом имени... да, вы догадались — бесконечно. То есть можно встретить роботов с позывными вроде 00110... или 01010... и так до ∞. Всё просто, да? Мы такие проблемы на завтрак кушаем. Но... внезапно, наша система начинает рассыпаться, при попытке заполнить адресную книгу. Просто посмотрите на таблицу. У нас всегда будет один человек, который останется без номера. И его имя будет составлено из цифр по диагонали, но с переменой символа. Он не находится в номере 1, ведь имя робота начинается с другой цифры. Этот гость не из комнаты 2, так как вторая цифра ника не соответствует аналогичному символу постояльца из комнаты два. И так далее, вплоть до бесконечности. В математическом смысле это означает следующее: бесконечное количество всех чисел, состоящих только из 0 и 1, настолько велико, что просто не сможет вместиться в наш отель. Всё дело в том, что мы пытаемся запихать неисчисляемое множество роботов из автобуса в гостиницу, где номера бесконечны, но исчисляемы.
Непонятно? Ну вот возьмём мы все целые положительные числа, начиная с нуля. Вот и наш первый член этой последовательности — 0, потом пойдёт 1, затем 2 и так до ∞. Это исчисляемая бесконечность. А теперь возьмём все дробные числа между 0 и 1. Какое число будет первым в этой последовательности? Ладно, 0. А второе? 0.1? Или 0.01? Или 0.0000000001? Кто знает? Никто. Неисчисляемая бесконечность. И это только что рассыпало гордый девиз нашего заведения. Как получилось, что мы можем вместить в наш отель бесконечное количество бесконечностей, но при попытке вселить числа жёстко ограниченные двумя цифрами, всё рассыпается как карточный домик? Или чё? В общем, добро пожаловать на сервер карательной математики, где ваш мозг подвергается столкновением с иррациональным. Оставайтесь с нами, мы скоро вернёмся с ещё более потрясающими вещами.
----
Тут обязательная просьба поставить лайк и подписаться. Собираюсь писать еще
о многом интересном. А еще у меня есть телеграм-канал: Массаракш Наизнанку. Там подобные статьи появляются раньше, но без подробностей. А
еще там бывают всякие новости.