MakarovSuites
Українська
EnglishDeutschРусскийУкраїнськаFrançaisEspañolItalianoPolski
Зв’язок і ліцензії

Math

Годинник за модулем

Циферблат із m поділок і одна стрілка. Додавання малює зірку, що замикається за m/НСД(s, m) ходів; множення — цикл, довжина якого ділить φ(m). У деяких модулів первісних коренів немає зовсім, і картка це каже: така теорема, а не невдача пошуку.

Годинник за модулем — Зображення з програми
Зображення з програми

Що відбувається

Стрілка йде хід за ходом, і поділки, яких вона торкнулася, загоряються; ті, що лишились темними, відповідають раніше, ніж панель назве НСД. Крок 8 на дванадцяти поділках малює трикутник; крок 5 — зірку по всіх дванадцяти, бо 5 і 12 не мають спільного дільника. При множенні правило інше: k → k·g, довжина циклу є ПОРЯДКОМ g, і за теоремою Ейлера цей порядок ДІЛИТЬ φ(m) — на сімнадцяти поділках можливі лише 1, 2, 4, 8 і 16. Первісний корінь — це g, порядок якого дорівнює саме φ(m); на простому циферблаті він обходить усі поділки, крім нуля. Скільки їх? Рівно φ(φ(m)), і панель рахує їх ще й перебором. І головне: первісні корені існують не для всякого модуля, а лише для 1, 2, 4, p^k і 2p^k. Для 8, 12, 15, 16, 20, 21 чи 24 немає жодного, і картка каже це вголос, а не мовчки нічого не знаходить.

Рівняння модуля
Рівняння
додавання:  стрілка з позиції k переходить на k + s (mod m);  цикл замикається після m / gcd(s, m) кроків і відвідує КОЖНУ позначку рівно тоді, коли gcd(s, m) = 1
m = 12, s = 8 → 3 позначки (трикутник);  m = 12, s = 5 → усі 12;  m = 360, s = 84 → 30
множення:  k → k·g (mod m);  довжина циклу дорівнює ПОРЯДКУ g, і за теоремою Ейлера вона ділить phi(m)
m = 17: phi = 16, а наявні порядки 1, 2, 4, 8, 16 - більше нічого трапитися не може
первісний корінь є таким g, порядок якого дорівнює саме phi(m); для простого m це означає цикл через усі m − 1 ненульових позначок
скільки:  рівно phi(phi(m)), коли вони існують -  m = 7 → 2 (найменший 3), m = 11 → 4 (найменший 2), m = 23 → 10 (найменший 5)
КОЛИ ВОНИ ІСНУЮТЬ:  лише для m = 1, 2, 4, p^k та 2p^k.  Для 8, 12, 15, 16, 20, 21, 24 первісного кореня НЕМАЄ взагалі - це теорема, а не невдалий пошук
phi тут обчислюється, а не береться з таблиці:  phi(7) = 6, phi(9) = 6, phi(12) = 4, phi(16) = 8, phi(36) = 12, phi(100) = 40, phi(1000) = 400

Інші експерименти

До каталогу
Решето і щільність простих — Зображення з програми

Math

Решето і щільність простих

Проведіть решето вручну на пронумерованих плитках: візьміть наступний дільник, передбачте, звідки почнеться його хвиля, і дивіться, як вона викреслює кратні — уже викреслені лише зачіпаються. Поруч — pi(x) за підрахунком проти наближень x/ln x і Li(x).

RSA на малих числах — Зображення з програми

Math

RSA на малих числах

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

Хеші та кошики — Зображення з програми

Math

Хеші та кошики

Сортувальний стіл: ключі — паперові бирки, каретка хешує кожну і кидає в кошик з номером хешу, колізія — два різні ключі в одному кошику. Хеш — іменована функція: сума кодів, многочлен з основою 31, FNV-1a — або рівномірний оракул, що стоїть за кривою днів народження. Відредагуй ключ, подивись обчислення хешу по символах, переверни один біт і порахуй зсунуті біти хешу; порівняй дві функції на тих самих ключах.