Біноміальні коефіцієнти, по рядок за рядком
Па scalєв трикутник будується з рядка n з рядка n-1 одним правилом: кожне значення є сумою двох значень діагональними зверху, краї доповнюються 1. Рядок n, позиція k, містить біноміальний коефіцієнт C(n, k) — кількість способів вибрати k елементів з n, і коефіцієнт xᵏ у розпаді (1 + x)ⁿ. Його назвали на честь трактату Блазе Паскаля 1654 року, хоча сам трикутник відомий століттями раніше в Індії, Персії та Китаї (де його називають трикутником Ян Хуй). Кольорування кожного елемента за своїм значенням за модулем невеликого простого p перетворює цю звичайну комбінаторну таблицю на дисплей самоподібної фрактальної структури.
row[0] = [1] row[n][k] = row[n-1][k-1] + row[n-1][k] (with row[n][0] = row[n][n] = 1) // reduced mod p, this is all that's needed: cellModP = (row[n-1][k-1] + row[n-1][k]) % p
Модуль 2: Сьєрпінський трикутник випадає безкоштовно
Пофарбуйте кожну непарну вхід чорним, а кожну парну - білим, і трикутник Паскаля за модулем 2 перетворюється на Сьєрпінський трикутник — точно, а не приблизно, і схожість загострюється, коли обчислюються більше рядків, а не це випадкове явище кількох десятків рядків. Це не випадковість візуалізації; це теорема. Теорема Лукаса (1878 року) стверджує, що C(n, k) mod p (де p — просте число) можна обчислювати по черзі за розряду в системі з номером p: запишіть n і k у системі з номером p як n = nₘ...n₁n₀ та k = kₘ...k₁k₀, тоді C(n, k) mod p = добуток C(nᵢ, kᵢ) mod p для кожного розряду, а весь добуток є нулем (mod p), щойно будь-яка пара цифр nᵢ та kᵢ задовольняє умову kᵢ > nᵢ. Для p = 2 це означає, що C(n, k) непарне тоді і тільки тоді, коли кожний бінарний розряд k є ≤ відповідним бінарним розрядам n — саме те рекурсивне «числа бітів є підмножиною інших чисел бітів», яке генерує самоподібний знятий усуненням візерунок Сьєрпінського трикутника.
Інші прості числа: фрактали з розгалуженням на p-й рівень
Теорема Лукаса узагальнюється безпроблемно для будь-якого простого числа p, і отриманий за остачею відносно p малюнок є знову самосхожим, але тепер побудований з p(p+1)/2 менших подібних копій, розташованих у вигляді трикутної суперструктури, а не з 3 копій (за випадком Sierpiński трикутник). За остачею відносно 3 видно малюнок трикутних комірок із шістнадцятирозмірною внутрішньою структурою; за остачею відносно 5 і за остачею відносно 7 вони стають все більш деталізованими та бурхливими. Кожна з них має обчислювану фрактальну розмірність: для простого числа p вона дорівнює log(p(p+1)/2) / log(p), що дорівнює log 3 / log 2 ≈ 1,585 точно, коли p = 2 (звична розмірність Sierpiński трикутника) і повільно зростає до 2 зі збільшенням p, оскільки більший простий число дозволяє більшій кількості комбінацій (n mod p, k mod p) бути не нульовими.
Чому це пов’язує рівносторонній трикутник Паскаля з теорією чисел
Глибока причина того, що чисто комбінаційний об'єкт (підрахунок підмножин) зменшується до чисто числової умови (теорема Лукаса), полягає в теоремі Кюмера: степінь простого числа p, який ділить C(n, k), дорівнює кількості розбітків, коли додають k і (n − k) у базі p. Коли розбиттів немає — що точно відповідає умові «кожна цифра k поміщається в відповідну цифру n» — біноміальний коефіцієнт не ділиться на p взагалі, тому він виживає як ненульовий залишком; де відбувається розбіт, коефіцієнт ділиться на p і зникає залишком, пробиваючи самосхожі дірки, які створюють фрактальну структуру.
Від трикутника до обчислювальної хитрості
Теорема Лукаса не просто декоративна — це практичний алгоритм. Обчислення C(n, k) mod p безпосередньо для величезних n та k (мільйони або більше), будуючи повний трикутник, є недоцільним, але розкладання n та k на залишки від ділення дрівом на число p та множення разом не більше log_p(n) малих біноміальних коефіцієнтів (кожний звід часу витягнутий з маленької попередньо обчислюваної таблиці), обчислює відповідь за часом логарифмічним до n. Це стандартна техніка в конкурентному програмуванні та обчислювальній теорії чисел, коли потрібно обчислити біноміальний коефіцієнт по модулю малого простого числа для дуже великих n.
Frequently asked questions
Чому трикутник Паскаля за модулем 2 виглядає точно як трикутник Сієрсніка?
За теоремою Лукаса, C(n,k) є непарним, тільки якщо кожна бінарна цифра k менша або дорівнює відповідній бінарній цифрі n. Ця бітова умова підмножини точно відповідає рекурсивному правилу генерації самоподібного візерунка заповнених і порожніх клітинок трикутника Сієрсніка, тому ці дві конструкції збігаються абсолютно, а не приблизно.
Чи з'являється фрактальний візерунок для кожного простого числа, чи тільки для 2?
Кожне просте число p генерує самоподібний фрактальну візерунок, коли кольоровий трикутник Паскаля за реваншем за модулем p, через ту ж теорему Лукаса, що застосовується по цифрах у системі з номером основи p. Фрактальна розмірність повільно зростає з p, від log(3)/log(2) при p=2 до 2, коли p збільшується, оскільки більші прості числа дозволяють більше не нульових комбінацій цифр.
Що таке теорема Кюмера і як вона пов'язана з теоремою Лукаса?
Теорема Кюмера стверджує, що степінь простого числа p, який ділить C(n,k), дорівнює кількості переносів, які відбуваються при додаванні k і n-k у системі з номером основи p. Відсутність перенос означає, що коефіцієнт не ділиться на p взагалі (теорема Лукаса про підмножини задоволена); будь-який перенос означає, що він зникає за модулем p — саме переноси створюють самоподібні отвори у фракталі.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Pascal's Triangle mod p і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Pascal's Triangle mod p