Чтобы понять, почему город определяется не физическими размерами, а численностью населения, важнее всего осознать, что город состоит не из зданий и улиц, а из людей, которые в нем живут. Город – это сцена, на которой разыгрывается история цивилизации, и разыгрывают ее не актеры, а акторы. Города ценны постольку, поскольку они выполняют функцию сетей, обеспечивающих возможность взаимодействия между людьми.
Значит, модель города должна отражать не его географическое положение, будь то на острове или посреди пустыни, а сетевую структуру взаимодействий его жителей. По-видимому, свойство универсальной масштабируемости, открытое Уэстом, определяется именно качеством сети, возникающей из взаимодействий горожан. Таково могущество математики. Она позволяет увидеть простые структуры, находящиеся в самом сердце нашей сложной среды.
Если взять предельный случай – когда по мере роста города каждый житель контактирует со всеми остальными, – можно увидеть, почему крупный город порождает сверхлинейный рост. Если численность его населения равна N, максимальным числом связей между ними будет количество разных рукопожатий, которые могут совершить эти N жителей. Выстроим их в ряд и пронумеруем от 1 до N. Горожанин номер 1 проходит вдоль ряда, пожимая всем руки, – всего N – 1 рукопожатий. После него вдоль ряда проходит горожанин номер 2. Он уже пожал руку горожанину № 1, так что он прибавляет к сумме N – 2 рукопожатий. Так продолжается и дальше, и на долю каждого следующего горожанина приходится на одно рукопожатие меньше. Общее число рукопожатий равно сумме чисел от 1 до N – 1. Давно не виделись! Это то самое вычисление, которое задали Гауссу. Его шорткат дал формулу для вычисления этого числа:
Что происходит с количеством связей при удвоении N? Число рукопожатий не удваивается, а увеличивается в 2 в квадрате – то есть 4 – раза. Число рукопожатий пропорционально квадрату числа жителей города.
Этот пример прекрасно показывает, почему математика может избавить нас от необходимости снова и снова изобретать колесо. Хотя я задал совершенно другой вопрос, касавшийся связей в сети, оказалось, что для анализа роста этого числа у меня уже есть инструменты, полученные из анализа треугольных чисел. Действующие лица могут то и дело меняться, но сценарий остается тем же. Стоит понять этот сценарий, и в вашем распоряжении оказывается шорткат к пониманию поведения любых персонажей пьесы. В данном случае число связей между горожанами растет с увеличением их количества квадратично.
Разумеется, каждый житель города никак не может быть знаком со всеми остальными. Более консервативной гипотезой будет предположение о том, что горожане знакомы с жителями своего района. Но эта величина масштабируется линейно; общие размеры не имеют существенного значения.
Судя по всему, связи между жителями городов находятся где-то между этими двумя предельными случаями. Горожанин поддерживает все свои местные связи плюс несколько более дальних связей в других частях города. По-видимому, именно такие дальние связи и приводят к тому, что при удвоении численности населения количество связей увеличивается на лишние 15 процентов. Как я объясню в последующих разделах этой книги, сети такого типа возникают во многих разных сценариях, и это обстоятельство оказывается чрезвычайно удобным для прокладки шорткатов.
Паттерны обманчивые
Хотя паттерны обладают невероятной силой, использовать их следует с осторожностью. Вы можете отправиться по такому пути, считая, что, вероятно, знаете, куда вы идете. Но иногда этот путь может завернуть в странном и неожиданном направлении. Возьмем ту последовательность, которую я предлагал вам решить раньше:
Что, если я скажу вам, что следующее число в этой последовательности – не 32, а 31?
Если взять круг, отмечать на его окружности точки и соединять все эти точки прямыми линиями, каково будет максимальное число областей, на которые можно разделить этот круг? Если точка всего одна, никаких линий не будет и область получится тоже всего одна. Если добавить еще одну точку, две точки можно соединить линией, которая разделит круг на две области. Добавим третью точку. Проведя все возможные линии, соединяющие эти точки, получим треугольную фигуру, окруженную тремя секторами круга: всего четыре области.
Рис. 1.1. Первые пять чисел деления круга
Если продолжить действовать таким же образом, кажется, что проявляется паттерн. Вот данные по числу областей, получающихся при добавлении очередных точек на окружности:
В этот момент разумно предположить, что добавление очередной точки удваивает число областей. Проблема заключается в том, что этот паттерн нарушается, как только я добавляю шестую точку. Как ни старайся, число областей, на которые линии разбивают круг, оказывается равным 31. А вовсе не 32!
Рис. 1.2. Шестое число деления круга
Для числа областей существует формула, но она чуть сложнее, чем простое удвоение. Если на окружности есть N точек, максимальное число областей, которые можно получить, соединяя эти точки, равно
1/24 (N4 – 6N3 + 23N2 – 18N + 24).
Мораль тут следующая: важно знать, что именно описывают ваши данные, а не полагаться на одни лишь числа. Обработка данных может быть делом опасным, если она не сочетается с глубоким пониманием того, откуда взялись эти данные.
Вот еще одно предостережение относительно шорткатов такого рода. Каким должно быть следующее число в этой последовательности?
В ней много степеней двух. Но что там делает число 24? В общем, если вы сумели заключить, что следующее число этой последовательности – 47, я советую вам в ближайшую же субботу купить лотерейный билет. Это выигрышные номера тиража британской Национальной лотереи, разыгранного 26 сентября 2007 года. Мы настолько пристрастились к поиску паттернов, что часто видим их там, где никакого паттерна ожидать нельзя. Лотерейные билеты выпадают случайным образом. Без паттернов. Без тайных формул. Шорткатов к миллионным состояниям не бывает. Однако в главе 8 я объясню, что даже случайные вещи следуют неким паттернам, которые можно рассматривать в качестве потенциальных шорткатов. Если речь идет о случайностях, шорткатом будет рассмотрение долгосрочной перспективы.
Концепцию паттерна можно использовать в качестве шортката к пониманию того, действительно ли какое-либо явление случайно, и этот метод имеет отношение к легкости запоминания числовых последовательностей.
Шорткат к хорошей памяти
Поскольку в интернете каждую секунду появляется огромное количество данных, компании ищут более рациональные способы их хранения. Выявление паттернов в данных облегчает их сжатие, благодаря которому для их хранения требуется меньше места. Именно эта идея лежит в основе технологий, подобных форматам JPEG или MP3.
Возьмем изображение, составленное только из черных и белых пикселей. В любом таком изображении где-нибудь может быть большой участок, состоящий из сплошных белых пикселей. Можно не описывать по отдельности каждый белый пиксель, используя для сохранения изображения такое же количество памяти, которое требуется для всех его данных, а прибегнуть к шорткату. Тогда нужно записать информацию о местоположении границы области белых пикселей и просто добавить указание закрасить эту область белым. Как правило, программный код, который я могу написать для такого закрашивания, займет гораздо меньше места, чем записи о каждом белом пикселе этой области.