🔺 Трикутник Паскаля за модулем p
Про цю симуляцію
Трикутник Паскаля будується з біноміальних коефіцієнтів C(n,k), кожен з яких дорівнює сумі двох коефіцієнтів над ним. Зазвичай ці числа стрімко зростають, але якщо цікавитися лише їхнім залишком від ділення на просте число p, виникає зовсім інша картина: трикутник розпадається на самоподібний фрактал із зафарбованих і порожніх клітинок. Для p = 2 цей фрактал точнісінько збігається з трикутником Серпінського.
Як це працює
- Кожен рядок n генерується з попереднього за звичайною рекурентою формулою Паскаля, але кожне додавання одразу зводиться за модулем p, тож числа завжди залишаються крихітними — навіть на 256-му рядку.
- У фрактальному режимі кожна клітинка (n,k) забарвлюється кольором, який визначається лише значенням C(n,k) mod p; клітинки із залишком 0 залишаються фоновими, утворюючи характерні трикутні порожнини.
- У режимі точних чисел (до 14 рядків) справжнє ціле значення C(n,k) обчислюється за тією самою рекурентою, але без модуля, і виводиться текстом.
- Техніка "кочівного" масиву оновлює один спільний буфер рядка на місці справа наліво, тож у пам'яті не потрібно зберігати весь величезний трикутник.
Ключові рівняння
C(n,k) = (C(n-1,k-1) + C(n-1,k)) mod p — це модулярна рекурента Паскаля, за якою будується кожен рядок. Теорема Лукаса стверджує, що C(n,k) mod p можна обчислити порозрядно в системі числення за основою p: запишіть n і k у системі числення за основою p як n = nm...n0 і k = km...k0, тоді C(n,k) ≡ ∏ C(ni,ki) (mod p). Для p = 2 це зводиться до простого бітового правила: C(n,k) непарне рівно тоді, коли кожен двійковий розряд k менший або дорівнює відповідному розряду n, тобто k AND n = k.
Керування
- Рядки — скільки рядків трикутника обчислюється й малюється, від 8 до 256 у фрактальному режимі.
- Модуль p — просте число (2, 3, 5 або 7), за яким зводяться всі коефіцієнти.
- Режим відображення — перемикання між кольоровим фрактальним виглядом і виглядом точних цілих чисел (обмежено 14 рядками).
- Колірна схема — спосіб відображення p можливих залишків на кольори у фрактальному режимі.
Чи знали ви?
Теорема Куммера узагальнює теорему Лукаса: найбільший степінь простого числа p, що ділить C(n,k), дорівнює кількості перенесень, які виникають при додаванні k і n−k у системі числення за основою p. Саме тому візерунок трикутника Серпінського для p = 2 є точним, а не наближеним — це буквально зображення перенесень (або їхньої відсутності) під час двійкового додавання.