Дати серед цифр числа Пі: деякі думки з позиції статистики та нумерології


Переклад поста Майкла Тротта (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 року.

Почнемо з графічної візуалізації нашої теми для завдання настрою.



Отримаємо усі дати за останні 100 років
Як і зазвичай, день числа пі в цьому році випав на 14 березня.



З вікового дня пі 20 століття пройшло 36 525 днів.



Створимо список з усіх 36 525 розглянутих дат.



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



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



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



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



Для швидкого (за постійний час) повторюваного розпізнавання послідовності як дати я поставлю функції dateQ та datesOf. datesOf дає нормалізовану форму послідовності цифр дати. Почнемо з створення пари послідовностей і їх інтерпретації як дат.



Ось деякі приклади.



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



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



Послідовність {1,2,1,5,4} має дві інтерпретації — як 21 січня 1954 або як 1 грудня 1954 — відновлені за допомогою функції datesOf.



Це кількості чотирьох-, п'яти-, і шестизначних уявлень дат.



А це число визначень кожного з типів, встановлених для функції datesOf.



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



Замість того щоб використовувати повну послідовність цифр як рядок, я буду використовувати послідовність цифр, розділену на (накладання) послідовності. Тепер можна швидко і незалежно працювати з кожною послідовністю. І я проіндексував послідовності порядковими номерами цифр. Наприклад:



Використовуючи визначені вище функції dateQ та datesOf, я можу тепер швидко знайти всі послідовності цифр, які можуть бути інтерпретовані як дати.



Ось деякі знайдені інтерпретації даних. Кожен подспісок має вигляд:

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



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



Зверніть увагу, що я міг би використовувати рядкові функції обробки (особливо StringPosition)для пошуку позицій послідовностей дат. І, звичайно, я б отримав той же результат.



У той час як використання StringPosition добре підійшло б для пошуку однієї дати, робота ж з усіма 35 000 послідовностей зайняло б набагато більше часу.



Зупинимося на секунду і подивимося на лічильник знайдених послідовностей з 4 цифр. З 10 000 можливих чотиризначних послідовностей використовується 8 100, при цьому кожна з них з'являється у середньому (1/10)⁴ * 10⁷ = 10⁴ раз, що випливає з «випадковості» розподілу цифр числа пі. Вважаю, стандартне відхилення має бути близько 1000^½≈31.6. Невеликий розрахунок і графік підтверджують ці цифри.



Крива розподілу кількості різних дат з чотирьох цифр має очікуваний вигляд дзвони.



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



Продовжимо тепер обробляти знайдені позиції дат. Згрупуємо результати в підсписки з однакових дат.



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



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



Статистика всіх дат
Розглянемо тепер знайдені дані з точки зору статистики. Ось число входжень кожної дати перші десять мільйонів цифр числа пі. Цікаво, а може бути навіть дещо несподівано, але багато дати зустрічаються сотні разів. Періодично виникають вертикальні смуги з'являються через кварталу жовтень-листопад-грудень.



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



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



Найчастіша дата серед перших 10 мільйонів цифр — 6 серпня 1939 року — зустрічається 1 362 рази.



Давайте знайдемо тепер самі рідкісні. Ось ці три дати зустрічаються тільки по разу.



А ці по два (виведення результату укорочений для економії місця).



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



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



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



А дата 1-23-45?



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



Але є один «палиндромный випадок»: 3 березня 1985 (3.3.8.5) лежить на палиндромной позиції 5833.



Дуже особлива дата — 9 січня 1936: вона з'являється на позиції 1936-го простого числа — 16 747.



Давайте розглянемо пам'ятні події у цей день в історії.



Так як не було жодної дати, яка з'явилася б на своїй позиції, то ми можемо пом'якшити умови і знайти всі дати, які «накладаються» на свої позиції.



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



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



Ось позиції збігаються дат.



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



Для дат, які рано з'являються в цифровій послідовності, кінцевий об'єм дат в цифрах також може бути візуалізовано. Дати задаються чотирма-шістьма цифрами. Наступний графік показує цифри всіх дат, які починаються в перших 10 000 цифрах.



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



Досі я брав дату і дивився, з якої позиції вона починається в послідовності цифр числа пі. Давайте тепер зробимо навпаки: скільки дат містять дану цифру числа пі? Щоб знайти загальне число дат для кожної цифри, можна пройтися циклом по датах.



Виходить до 20 дат на кожну цифру.



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



Вище я зазначав, що у мене в послідовності цифр знайшлося близько 12 мільйонів дат. Послідовність цифр, яку я використовував, має довжину всього в десять мільйонів цифр, а кожна дата містить близько п'яти цифр. Це означає, що на всі ці дати потрібно близько 60 мільйонів цифр. З цього випливає, що багато з десяти мільйонів цифр повинні бути багаторазово використані — в середньому близько п'яти разів. Тільки 2005 з перших десяти мільйонів цифр не використовуються ні в одній з послідовностей, інтерпретованих як дати, і це означає, що 99,98% всіх цифр використовуються в датах (не всі на першій позиції).



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



2005 не входять ні в одну дату цифр досить рівномірно розподілені в перших десяти мільйонів цифр.



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



Отже, з ким межують невикористані цифри? Існує 162 різні околиці з 5 цифр. Дивлячись на них, відразу видно, чому центральна цифра не може бути частиною дати: дуже багато нулів в окрузі.



І самий великий невикористаний блок цифр — шість цифр між положеннями 8 127 088 та 8 127 093.



У більшості цифр перекриваються дати різних років. Графік нижче показує діапазон років від ранніх до пізніх, як функцію від позиції цифри.

Ось невикористані цифри разом з трьома лівими і трьома правими сусідами.



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



А ось візуалізація «накладання» дат.





Найбільш використовувана цифра — одиниця на позиції 2 645 274 — вона присутня в 20 різних датах.



Ось цифри в її околиці і можливі дати.



Якщо я побудую року, починаючи з цієї цифри для більшої кількості цифр (скажімо, для перших 10 000), то я побачу щодо щільне покриття дат на площині-дати.



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



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



Тепер вирахуємо середню відстань між двома появами однієї і тієї ж дати.



Перші появи дат
Найбільш цікаві перші появи дат, так що давайте винесемо їх. Ми будемо працювати з двома версіями списку дат, перший являє собою список списків виду {дата, перша позиція дати} (firstOccurrences), а другий — той же список, відсортований по номеру позиції в цифрах числа пі (firstOccurrencesSortedByOccurrence).



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



Або ось інша крайність — дати, які зустрічаються в перший раз як можна пізніше.



Можна побачити, що середа 23 листопада 1960 починається тільки в положенні 9 982 546 (= 2*7*713039) — так, використовуючи лише перші десять мільйонів цифр, мені пощастило зловити її. Ось пряма швидка перевірка цієї «рекордної» дати.



І хто ж ті щасливчики з відомих людей, кому пощастило народитися в цей день?



І в яких фазах місяць під час кожної з топ-10 найбільш «глибоко зариті» дат?



І в той час, як середа 23 листопада 1960 — це найдальша дата в десятковій послідовності цифр, остання позиція у вигляді простого числа відповідає даті 22 жовтня 1995 року.



В цілому виходить, що менше 10% всіх дат з'являються на позиціях у вигляді простих чисел.



Часто деякі направляють цифри числа пі за певним напрямом на площині, формуючи випадкові блукання. Ми зробимо те ж саме в залежності від відстані між першими появами дат. Отримаємо зображення типових двовимірних випадкових блукань.



Ось позиції перших появ дат за останні кілька років. Сплески в жовтні, листопаді та грудні кожного року викликані необхідністю завдання дат послідовностями з п'яти або шести цифр, в той час як з січня по вересень дати можна задати меншою кількістю цифр, якщо пропустити необов'язкові нулі.



Якщо я включу всі дати, я отримаю, звичайно ж, набагато більше «щільні» графіки.



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



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



Великодню неділю — відмінна дата для візуалізації, так як кожен рік воно випадає на різні дні.



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



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



Ось перші входження «хороших» дат, утворених повторенням однієї цифри.



Детальний розподіл числа появ перших дат має найбільшу щільність в перших кількох десятках тисяч цифр.



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



Останнім розподіл є по суті зважена суперпозиція з перших появ чотирьох-, п'яти-, і шестизначних послідовностей.



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



На парних позиціях дат трохи більше, ніж на непарних.



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



Фактичні кількості перших примірників у кожний певний рік коливаються навколо середнього значення.



Середні числа перших примірників дат, відсортовані по місяцях, чітко поділяють двозначні і однозначні для запису місяців.



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



Нарешті, ось середні по днях тижня. Більшість перших примірників для дат припадає на дати, відповідні середовищі.



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



Деякі з позицій послідовностей в будь-якому випадку перекриваються, і я можу сформувати мережу з ланцюгів дат з перекриваються послідовностями цифр.



Наступний графік показує зростаючі розміри проміжків між послідовними датами.



Розподіл розмірів проміжків:



От пари найбільш віддалених один від одного послідовних дат. На передостанньому малюнку чітко видно великі проміжки.



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



Це дає наступну рядок ланцюгового дробу числа пі:



І, що цікаво, є тільки один такий день.



Жоден з розрахунків, проведених досі не проводилися щодо цифр числа пі. Цифри будь-яких інших ірраціональних чисел (або навіть досить довгих раціональних чисел) містять дати. Було цікаво знайти багато числових виразів, які містять дати цього року (2015). Тут вони зібрані разом в інтерактивній демонстрації.

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



Ось два раціональних числа, що в десятковій записи містять послідовність цифр:



І ось два цілих числа з початковими цифрами числа пі.



Використання нової функції TimelinePlot, яку Brett Champion, описав у його останньому пості в пості (див. пост "Нове в Wolfram Language: функція TimelinePlot для створення тимчасової шкали " на Хабре), я можу легко показати, як довго мені доведеться чекати.

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



Ми закликаємо читачів провести більш глибоке дослідження дат в цифрах числа пі, або ж розглянути замість пі іншу постійну (наприклад, число e Ейлера), і, можливо навіть в іншій системі числення. В цілому, якісні структури будуть однаковими для майже всіх ірраціональних чисел (щоб подивитися іншу картину, спробуйте постійну Чамперноуна ChampernowneNumber[10]). Будуть перші десять мільйонів цифр числа e містити всі дати? А на якій позиції буде знаходитися 21 жовтня 2014? Які особливі дати містяться в інших константах? Ці і багато інші питання, чекають своїх відповідей.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.