[Перевод] Даты среди цифр числа Пи: некоторые мысли с позиции статистики и нумерологии

cf079eb75abb4abf84c6c50b92ca66c0.png

Перевод поста Майкла Тротта (Michael Trott) «Dates Everywhere in Pi (e)! Some Statistical and Numerological Musings about the Occurrences of Dates in the Digits of Pi».
Код, приведенный в статье, можно скачать здесь.
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации
Содержание
Получим все даты за последние 100 лет
Найдём все даты в цифрах числа пи
Статистика всех дат
Первые появления дат
Даты в других представлениях и других константахВ недавнем своём посте (см. перевод поста »3/14/15 9:26:53 Празднование «Дня числа Пи» века, а также рассказ о том, как получить свою очень личную частичку числа пи» на Хабре) Стивен Вольфрам писал об уникальном положении векового дня числа пи и представил разные примеры содержания дат в цифрах числа пи (здесь и далее — в десятичном представлении). В этом посте я рассмотрю статистику распределений всех возможных дат за последние 100 лет в первых 10 миллионах цифр числа пи. Мы увидим, что 99,998% цифр представляют собой какую-то дату, и что можно обнаружить миллионы дат в первых десяти миллионах цифр числа пи.

Я сосредоточусь на датах, которые могут быть заданы не более чем шестью цифрами. То есть я смогу одназначно задавать даты в промежутке длительностью в 36 525 дней, начиная с 15 марта 1915 года и заканчивая 14 марта 2015 года.

Начнём с графической визуализации нашей темы для задания настроения.

40d428e1d72ff0a3c26f1d06e13b0982.png

Получим все даты за последние 100 лет


Как и обычно, день числа пи в этом году выпал на 14 марта.

fde12879fcd8bcc2e84dad491231f51b.png

С векового дня пи 20 века прошло 36 525 дней.

446255bc56d9172dc03d8f3835f63168.png

Создадим список из всех 36 525 рассматриваемых дат.

a8c62182d95f652d0be483df63c7c780.png

Для дальнейшей работы определим функцию dateNumber, которая для заданной даты возвращает порядковый номер даты, начиная с первой (15 марта 1915 г. имеет номер 1).

af5e4460a3470910a047c9488e1354b2.png

Месяцам с сентября по январь я позволю задаваться лишь одной цифрой — то есть 9 для сентября вместо 09; аналогично и для дней. То есть некоторые даты могут быть заданы разными последовательностями цифр. Функция makeDateTuples генерирует все последовательности целых чисел, представляющих даты. Можно использовать несколько различных обозначений дат — всегда с нулями или всегда в короткой записи. С опциональным включением нулей в запись дней и месяцев получится больше возможных соответствий и больше результатов, так что я буду использовать их в дальнейшем. (А если вы предпочитаете обычный формат записи дат в виде день-месяц-год, то тогда нужно будет просто внести изменения в функцию makeDateTuples).

68a4ae5d9babd90fdb76cbe1f9b03a52.png

Даты могут быть представлены одним, двумя либо четырьмя способами:

6b342719a7463c3b75ce79f6bd0f640b.png

Следующий график показывает то, какие дни прошлого года представимы четырьмя, пятью, и шестью цифрами. Первые девять дней в период с января по сентябрь для записи требуют четыре или пять цифр, а последние дни октября, ноября и декабря требуют шесть.

750dc60b49b2cb67eab30f9586a6530e.png

Для быстрого (за постоянное время) повторяющегося распознавания последовательности как даты я задам функции dateQ и datesOf. datesOf дает нормализованную форму последовательности цифр даты. Начнем с создания пары последовательностей и их интерпретации как дат.

d18a49237c68508e35232ddfc1eef008.png

Вот некоторые примеры.

329d5f641e96ab2dd2336dc41249d600.png

Большинство (77 350) последовательностей могут быть однозначно истолкованы как даты; некоторые (2700) имеют две возможные интерпретации.

89c4050040fbd79c9b49c808268d7bd2.png

Вот некоторые из последовательностей цифр с двумя интерпретациями.

214b0c1b9abe6ebc6d3f9c5aaf232ce4.png

Последовательность {1,2,1,5,4} имеет две интерпретации — как 21 января 1954 или как 1 декабря 1954 — восстановленные с помощью функции datesOf.

2643ad4ea543056d99064cc3de19bb82.png

Это количества четырех-, пяти-, и шестизначных представлений дат.

1121aff179c84245a3e3b0f20a90a8c8.png

А это число определений каждого из типов, установленных для функции datesOf.

ecc54cc1e8a155ea6cf4659c6bc33b09.png

Найдём все даты в цифрах числа пи


Для всех дальнейших расчетов я буду использовать первые десять миллионов десятичных цифр числа пи (позже будет показано, что десяти миллионов вполне достаточно, чтобы найти в них любую дату). Мы запросто можем заменить пи на любую другую константу (код универсален).

9a9e66c2d180fdf18030d1135c934bb9.png

Вместо того чтобы использовать полную последовательность цифр как строку, я буду использовать последовательность цифр, разделённую на (перекрывающиеся) последовательности. Теперь можно быстро и независимо работать с каждой последовательностью. И я проиндексировал последовательности порядковыми номерами цифр. Например:

dc917dd5cb5dc33687bd089e893e1140.png

Используя определенные выше функции dateQ и datesOf, я могу теперь быстро найти все последовательности цифр, которые могут быть интерпретированы как даты.

f201294ea9cb974169df7b2056ebbd0d.png

Вот некоторые найденные интерпретации дат. Каждый подсписок имеет вид:

{date, startingDigit, digitSequenceRepresentingTheDate}
(дата, начальная цифра, последовательность цифр представляющих дату).

bc0c94d25ba2e4a5aa42ae45964cf3b6.png

Мы нашли около 8,1 млн. дат, представленных четырьмя цифрами; около 3,8 млн. дат — пятью; около 365 тыс. дат — шестью, итого в сумме более 12 млн. дат.

3caac771d50b31c6a975f97c62326c56.png

Обратите внимание, что я мог бы использовать строковые функции обработки (особенно StringPosition), для поиска позиций последовательностей дат. И, конечно, я бы получил тот же результат.

6356119b516307a4d79508649b1ac51b.png

В то время как использование StringPosition хорошо подошло бы для поиска одной даты, работа же со всеми 35 000 последовательностей заняло бы гораздо больше времени.

6e0049ce689449b6950fda738e6f3da8.png

Остановимся на секунду и посмотрим на счётчик найденных последовательностей из 4 цифр. Из 10 000 возможных четырёхзначных последовательностей используется 8 100, при этом каждая из них появляется в среднем (1/10)⁴ * 10⁷ = 10⁴ раз, что следует из «случайности» распределения цифр числа пи. Полагаю, стандартное отклонение должно быть около 1000^½≈31.6. Небольшой расчёт и график подтверждают эти цифры.

78b9d6f4af073dd5870300d00f11841f.png

Кривая распределения количества различных дат из четырёх цифр имеет ожидаемый вид колокола.

ef8271c60d76409879f2dc19c27fa8ca.png

А следующий график показывает то, как часто каждая из 4-значных последовательностей, которая представляет какую-то дату, появляется в первых десяти миллионах цифр числа пи в десятичном представлении. Мы пронумеровали все 4-значные последовательности путём объединения цифр в число; в результате можно увидеть пустые вертикальные полосы в областях, в которых 4-значные последовательности не представляют даты.

bad9c9d282d102d8065d840da35751c9.png

Продолжим теперь обрабатывать найденные позиции дат. Сгруппируем результаты в подсписки из одинаковых дат.

7b158e550176ed088ad3296215a27179.png

И в самом деле, в первых 10 миллионах цифр встречаются все даты, то есть получается, что найдено 36 525 разных дат (далее мы увидим, что выбор числа цифр для анализа был оптимальным).

6810a057175b038cc81ee3fb130e39b3.png

Вот как выглядит типичный член dateGroups.

1bd19ac586000227b59701fcff422a8b.png

Статистика всех дат


Рассмотрим теперь найденные данные с точки зрения статистики. Вот число вхождений каждой даты в первые десять миллионов цифр числа пи. Интересно, а может быть даже несколько неожиданно, но многие даты встречаются сотни раз. Периодически возникающие вертикальные полосы появляются из-за квартала октябрь-ноябрь-декабрь.

fa41c9a0b330e921eb9ce692d99f5338.png

Среднее расстояние между датами также ясно показывает раннее появление четырёхзначных записей годов со средними промежутками менее 10 000, пятизначным соответствуют промежутки около 100 000, шестизначным — около 1 000 000.

7b0b1475757344fba458b750d4362f32.png

Для облегчения читаемости, я отформатировал тройки {date, StartingPosition, dateDigitSequence} индивидуальным образом.

b411bb4d0730065b835ad73ec030d547.png

Самая частая дата среди первых 10 миллионах цифр — 6 августа 1939 года — встречается 1 362 раза.

f7a9fee3b5b734c96eb84838f8f9133a.png

Давайте найдём теперь самые редкие. Вот эти три даты встречаются только по разу.

363e592b10e0a7054991c00901c2343f.png

А эти по два (вывод результата укорочен для экономии места).

4cef7c438e749cfe09b6cd853edd954c.png

Вот распределение числа вхождений дат. Три пика, соответствующих четырёх-, пяти- и шестициферным представлениям дат (слева направо) явно различаются. Даты, которые представляются последовательностями из 6 цифр, возникают нечасто; как было показано выше, появляются в среднем около 1200 раз.

2b9012eef4d3f43c5dfae591b83d31e7.png

Можно также собирать и отображать даты по годам (меньшие значения в концах появляются из-за усечения дат для обеспечения их уникальности). Распределение практически равномерное.

1da01e7cfce565a71aafe1c3cfc7cc23.png

Давайте посмотрим на даты с красивыми последовательностями цифр и на то, как часто они появляются. Так как результаты в dateGroups сортируются по дате, я могу легко получать доступ к указанным датам. Скажем, где располагается дата 11–11–11?

ac05f0be17ce1a34ad53f17f74aed530.png

А дата 1–23–45?

e23f7dee4d7e64ff6c8763d468facc65.png

Ни одна из дат не начинается на своей собственной позиции (то есть нет примеров наподобие того, что 1 января 1945 [1–1–4–5] находится на позиции 1145).

6ba3d494d6e9606c8d40867e12e43f4a.png

Но имеется один «палиндромный случай»: 3 марта 1985 (3.3.8.5) лежит на палиндромной позиции 5833.

1df7a620fc6ac7a1596e4842425dfd41.png

Весьма особая дата — 9 января 1936: она появляется на позиции 1936-го простого числа — 16 747.

8f25b791b6edcf668843844f1ab1c48c.png

Давайте рассмотрим памятные события в этот день в истории.

9c15eb790d165517d9b4442bf91b473f.png

Так как не было ни одной даты, которая появилась бы на своей позиции, то мы можем смягчить условия и найти все даты, которые «накладываются» на свои позиции.

34e0e0fb10c6b3dad6136a30aac8a5ae.png

И более чем 100 раз в первых 10 миллионах цифр числа пи можно встретить известную комбинацию первых цифр числа пи — 314159.

141b50d604c2296c0511bc1646a20f40.png

В числе пи можно найти не просто даты дней рождений, но и дни физических констант, такие как ħ-день (день редуцированной постоянной Планка), который, к примеру, отмечался как вековой 5 октября 1945 года.

474a48e1f0d6d7bd3c306bc7d3f87aaf.png

Вот позиции совпадающих дат.

4972ff4fca7032d0ca55e846f9af6f09.png

А вот попытка визуализировать встречаемость всех дат. В плоскости даты-цифры зададим точки для начала каждой даты. Мы используем логарифмическую шкалу для позиций цифр, и в результате количество точек значительно больше в верхней части графика.

46700f00ea3d3fb88f6e8b1d16182f33.png

Для дат, которые рано появляются в цифровой последовательности, конечный объём дат в цифрах также может быть визуализирован. Даты задаются четырьмя-шестью цифрами. Следующий график показывает цифры всех дат, которые начинаются в первых 10 000 цифрах.

d72fd7c63fe1a8695f23427208cca0d2.png

После огрубления, распределение становится довольно равномерным.

6b8f63c0798724e6d006d76313ae6f1c.png

До сих пор я брал дату и смотрел, с какой позиции она начинается в последовательности цифр числа пи. Давайте теперь поступим наоборот: сколько дат содержат данную цифру числа пи? Чтобы найти общее число дат для каждой цифры, можно пройтись циклом по датам.

9dd1ca8ad333178beca3ae6e34899c7c.png

Получается до 20 дат на каждую цифру.

b278e028cf25eda809c3744ce8f1cbef.png

Вот два интервала по 200 цифр каждый. Мы видим, что большинство цифр содержатся в датах.

dc1f9fa3a0166d2084c03a469a67a973.png

Выше я отмечал, что у меня в последовательности цифр нашлось около 12 миллионов дат. Последовательность цифр, которую я использовал, имеет длину всего в десять миллионов цифр, а каждая дата содержит около пяти цифр. Это означает, что на все эти даты нужно около 60 миллионов цифр. Из этого следует, что многие из десяти миллионов цифр должны быть многократно использованы — в среднем около пяти раз. Только 2005 из первых десяти миллионов цифр не используются ни в одной из последовательностей, интерпретированных как даты, и это означает, что 99,98% всех цифр используются в датах (не все на первой позиции).

55d19cacc5daf79d360ee7a81ab5d287.png

А вот гистограмма распределения числа дат, присутствующих на каждой конкретной цифре. Можно отчётливо увидеть без особых вычислений, что в среднем на одну цифру приходится около 6 дат.

5ec87b89c67225c8ef0c4fe7f374b955.png

2005 не входящих ни в одну дату цифр довольно равномерно распределены в первых десяти миллионах цифр.

cf244fd2848b3a392beda8717ec2860d.png

Если я изображу конкретные позиции незадействованых цифр по сравнению с их ожидаемой средней позицией, то я получу нечто наподобие графика случайных блужданий.

54c2ab30912a9cb8b22a0dea8fdd80d7.png

Итак, с кем граничат неиспользованные цифры? Существует 162 различные окрестности из 5 цифр. Глядя на них, сразу видно, почему центральная цифра не может быть частью даты: слишком много нулей в округе.

fc14f8a092e3dae434bbb312a666d310.png

И самый большой неиспользованный блок цифр — шесть цифр между положениями 8 127 088 и 8 127 093.

6238832f5f378062346f8faf85e8a787.png

В большинстве цифр перекрываются даты разных лет. График ниже показывает диапазон лет от ранних к поздним, как функцию от позиции цифры.

Вот неиспользованные цифры вместе с тремя левыми и тремя правыми соседями.

08448c9f9772445664bbceb6d6b050f1.png

Для того, чтобы проиллюстрировать работу алгоритма выше, я возьму случайную цифру и найду все даты, которые ее «накрывают».

a31f5f97d247e632c5766708a2d915e7.png

А вот визуализация «наложения» дат.

7b3a4d604d4bc39c87b72a49d2933988.png

dca7e415380fd7fb3b2d3d78566f26cd.png

Наиболее используемая цифра — единица на позиции 2 645 274 — она присутствует в 20 различных датах.

a61e3e5566343b154d26eb4f89b02acd.png

Вот цифры в её окрестности и возможные даты.

64651a580e1950d9bdc3f74512462457.png

Если я построю года, начиная с данной цифры для большего количества цифр (скажем, для первых 10 000), то я увижу относительно плотное покрытие дат на плоскости цифры-даты.

539d596a59ecf518948013869ca68419.png

Давайте теперь построим график связанных дат. Будем считать две даты связанными, если они имеют хотя бы одну общую цифру (не обязательно начальную).

d64ff4c061241f9d48002dc168ea6bea.png

Ниже показан такой же граф, только для первых 600 цифр, но с выделенными сообществами (community).

54cf15e14f03002fdeb4d4449419fa21.png

Высчитаем теперь среднее расстояние между двумя появлениями одной и той же даты.

436eb182a6d1d1272505968028d73f6c.png

Первые появления дат


Наиболее интересны первые появления дат, так что давайте извлечём их. Мы будем работать с двумя версиями списка дат, первый представляет собой список списков вида {дата, первая позиция даты} (firstOccurrences), а второй — тот же список, отсортированный по номеру позиции в цифрах числа пи (firstOccurrencesSortedByOccurrence).

46874f337dc4d394b14983ae19fb3271.png

Все возможные интерпретации дат в первых десяти цифрах числа пи.

d800b19ef5206572bf048687f072ced2.png

Или вот другая крайность — даты, которые встречаются в первый раз как можно позже.

44025a8bee392b909a03f18e9517cab6.png

Можно увидеть, что среда 23 ноября 1960 начинается только в положении 9 982 546 (= 2×7*713039) — так, используя лишь первые десять миллионов цифр, мне повезло поймать её. Вот быстрая прямая проверка этой «рекордной» даты.

349cdcac3674b21e2c5984256921a8e8.png

И кто же те счастливчики из известных людей, кому повезло родиться в этот день?

09a8dac9a79af52cfa77e18d3f00ed0a.png

И в каких фазах была луна во время каждой из топ-10 самых «глубоко зарытых» дат?

fc5bedb6dc6e45d4f1ddd64a9b7c4a93.png

И в то время, как среда 23 ноября 1960 — это самая дальняя дата в десятичной последовательности цифр, самая последняя позиция в виде простого числа соответствует дате 22 октября 1995.

5fc1b17f66520ada370c1cf6153d69c8.png

В целом получается, что менее 10% всех дат появляются на позициях в виде простых чисел.

b5ca288d0dc6f5bfbd4167c1bd8e49a9.png

Часто некоторые направляют цифры числа пи по определённому направлению на плоскости, формируя случайные блуждания. Мы сделаем то же самое в зависимости от расстояния между первыми появлениями дат. Получим изображения типичных двумерных случайных блужданий.

6733b57f86e109a511125078362edfa8.png

Вот позиции первых появлений дат за последние несколько лет. Всплески в октябре, ноябре и декабре каждого года вызваны необходимостью задания дат последовательностями из пяти или шести цифр, в то время как с января по сентябрь даты можно задать меньшим количеством цифр, если пропустить необязательные нули.

12e634328a19c663ff3d3cb6f7afc116.png

Если я включу все даты, я получу, конечно же, гораздо более «плотные» графики.

87a0615a7b8686b13cecf7d1d7c3ec15.png

Логарифмическая вертикальная ось показывает, что большинство дат впервые появляются между тысячной и миллионной цифрами.

f068f5292cb52a6f3c0d454093effec6.png

Чтобы получить более глубокое и интуитивное понимание общей однородности и локальных «случайностей» в последовательности цифр (и, как следствие, в датах), я приведу диаграмму Вороного в плоскости дни-цифры, основанную на точках первых появлений дат. Уменьшение плотности при возрастании номера объясняется тем, что я рассматривал лишь первые появления дат.

f9c9bedf0440de825cc907875ecab3e1.png

Пасхальное воскресенье — отличная дата для визуализации, так как каждый год оно выпадает на разные дни.

21f29f65edfacbbbbe5df18b7ed90f7d.png

Средняя позиция первого появления даты, как функция от количества цифр, необходимых для её указания зависит, конечно, от количества цифр, необходимых для её кодирования.

e687a3a45c2c8bdd75372a411cf9cadd.png

Средняя позиция первого появления даты приходится на 239 083, но из-за разброса в несколько миллионов цифр, стандартное отклонение гораздо больше.

254c0b97c74023cc5d70c984e13fd28d.png

Вот первые вхождения «хороших» дат, образованных повторением одной цифры.

538dc27547310b4f4a737df28d916730.png

Подробное распределение числа появлений первых дат имеет наибольшую плотность в первых нескольких десятках тысяч цифр.

a9295e245654564514dd958166b3e3de.png

Логарифмические оси гораздо лучше подходят для демонстрации распределения, однако из-за увеличения размеров ячеек следует осторожно подходить к интерпретации максимума.

f4de57f449de10a89295501992f4cb85.png

Последнее распределение есть по сути взвешенная суперпозиция из первых появлений четырех-, пяти-, и шестизначных последовательностей.

0827704faa4e613a12bfef397ffdca33.png

А вот совокупное распределение дат в зависимости от позиции цифры. Можно увидеть, что первый 1% из десяти миллионов цифр содержит уже 60% всех дат.

654a8c49b31f312f62aca471926dfaf1.png

На чётных позициях дат чуть больше, чем на нечётных.

c40cc2b11e8782629740bb97a023fb82.png

Можно сделать то же самое для чисел, кратным трём, четырём и так далее. Левое изображение показывает отклонение каждого класса соответствий от среднего значения, а правое — наибольшие соответствия, рассмотренные по критерию чётности.

5bfd19a45fac650a41b8fe197fe375f2.png

Фактические количества первых вхождений в каждый определённый год колеблются вокруг среднего значения.

b29580d292240308b96c20f21d205010.png

Средние числа первых вхождений дат, отсортированные по месяцам, отчётливо разделяют двузначные и однозначные записи для месяцев.

1faac562944c7ef8e509a231b71d1cf1.png

Средние числа по дням месяца (1–31) в основном представляют из себя медленно возрастающие функции.

eaed48ec4341e46c2d9450269098197d.png

Наконец, вот средние по дням недели. Большинство первых вхождений для дат приходится на даты, соответствующие среде.

eb247ff623cbfcce416841f639a3c2ac.png

Выше я отмечал, что большинство цифр входят в какие-то даты. Лишь небольшое число цифр содержатся в датах, которые появляются впервые (121 470).

5ffacc4352b77f60b48632e450ed312d.png

Некоторые из позиций последовательностей в любом случае перекрываются, и я могу сформировать сеть из цепей дат с перекрывающимися последовательностями цифр.

311ae04ab87fabe04003cb151979a71e.png

Следующий график показывает возрастающие размеры промежутков между последовательными датами.

5ac1edd9a9a832c7453f03ef9a63a1b4.png

Распределение размеров промежутков:

a2bfdfb26d9ec149d3612e4f7bbaa65d.png

Вот пары наиболее отдалённых друг от друга последовательных дат. На предпоследнем рисунке отчётливо видны большие промежутки.

5723c0a3e968147feb5a9a3d35f648d2.png

Даты в других представлениях и других константах


Теперь рассмотрим особые даты, в которых левые части цепной дроби (числа перед знаком плюс) совпадают с числами в десятичном представлении.

958bab800db7ecfd2b776b4a83f178de.png

Это дает следующую строку цепной дроби числа пи:

572b616777f0c78a6d98921e5f69bd31.png

И, что интересно, есть только один такой день.

4a72e8a671ed2369564681c473ad5c01.png

Ни один из расчетов, проведенных до сих пор не проводились относительно цифр числа пи. Цифры любых других иррациональных чисел (или даже достаточно длинных рациональных чисел) содержат даты. Было занятно найти много числовых выражений, которые содержат даты этого года (2015). Здесь они собраны вместе в интерактивной демонстрации.

Теперь мы подошли к концу наших размышлений. В качестве последнего примера, давайте попробуем проинтерпретировать положения цифр в качестве секунд после времени пи в этом году, которое случилось 14 марта в 9:26:53. Как долго мне придётся ждать появления последовательности цифр 3 • 1 • 4 • 1 • 5 в десятичном представлении других констант? Можно ли найти такое выражение (небольшое), в первый миллион цифр которого не попадает последовательность 3 • 1 • 4 • 1 • 5?(Большинство элементов следующего списка ξs есть случайные выражения. Последние элементы были найдены при поиске выражений, которые имеют последовательность цифр 3 • 1 • 4 • 1 • 5 настолько далеко, насколько это возможно)

7a1e73d7206bf1401e0c2b24ac9940e4.png

Вот два рациональных числа, которые в десятичной записи содержат последовательность цифр:

532b474c5782a1968bf8a6937ffe93ee.png

И вот два целых числа с начальными цифрами числа пи.

08e04c6e401c4aee9e9b241221a47da4.png

Использование новой функции TimelinePlot, которую Brett Champion, описал в его последнем посте в посте (см. пост «Новое в Wolfram Language: функция TimelinePlot для создания временной шкалы » на Хабре), я могу легко показать, как долго мне придется ждать.

Использование аккуратный новую функцию TimelinePlot, что чемпион Бретт, описанной в его последнем сообщении в блоге, я могу легко показать, как долго мне придется ждать.

f42d25d2ea657d35058c987b45832362.png

Мы призываем читателей провести более глубокое исследование дат в цифрах числа пи, или же рассмотреть вместо пи другую постоянную (например, число e Эйлера), и, возможно даже в другой системе счисления. В целом, качественные структуры будут одинаковыми для почти всех иррациональных чисел (чтобы посмотреть другую картину, попробуйте постоянную Чамперноуна ChampernowneNumber[10]). Будут ли первые десять миллионов цифр числа e содержать все даты? А на какой позиции будет находиться 21 октября 2014? Какие особенные даты содержатся в других константах? Эти и многие другие вопросы, ожидают своих ответов.

Комментарии (0)

© Habrahabr.ru