Циклическая группа (cyclic group) — это группа, которую можно полностью получить (сгенерировать) из одного элемента.
Иными словами, если имеется элемент a и если брать его степени:
..., a^-2, a^-1, e, a, a^2, a^3, ... то можно получить всю группу.
Формально:
G = <a> = {a^n | n ∈ Z} Такой элемент a называется generator (генератор). По-простому, один элемент “накручивает” всю группу.
Важная ремарка про notation Если группа записывается в multiplicative notation, то пишут:
a^n Это значит:
a · a · a …
Когда мы уже знаем, что такое группа (group), следующий шаг — понять её внутреннюю структуру.
Для этого вводятся понятия:
порядок группы (order of a group); порядок элемента (order of an element); подгруппа (subgroup); тесты на подгруппу (subgroup tests); порождённая подгруппа (generated subgroup); центр группы (center of a group); централизатор (centralizer). Это всё нужно, чтобы понимать, как группа устроена изнутри.
Порядок группы Порядок группы (order of a group) — это количество элементов в …
Абстрактная алгебра (abstract algebra) изучает не конкретные числа или фигуры, а структуры вида:
множество + операция + свойства операции Главный вопрос: какие свойства имеет операция?
Если разные системы имеют одинаковые свойства, их можно изучать одинаковыми методами.
Например:
целые числа под сложением; симметрии квадрата; матрицы; перестановки; точки на elliptic curve. Все они могут быть группами.
Бинарная операция Пусть:
G — множество.
Бинарная операция (binary operation) на G — это …
Введение в группы (groups) часто начинают с симметрий квадрата, потому что это очень наглядный пример.
Берём обычный квадрат. Рассматриваем все его симметрии (symmetries). По нашим условным правилам квадрат можно:
поворачивать на 0, 90, 180, 270 градусов (rotations); отражать по вертикали, горизонтали и диагоналям (reflections); комбинировать такие движения друг с другом. Нас интересует не сам путь движения, а итоговый эффект (net effect), то есть как квадрат выглядит после преобразования. …
В абстрактной алгебре функция — это не просто школьная история типа y = x². Это основной язык, через который математика говорит: “один объект переходит в другой объект по некоторому правилу”. (Да-да, вино переходит в уксус, а Мюнхгаузен — в Феофила.)
То есть функция описывает не только вычисление, но и связь между множествами, структурами, группами, кольцами, полями и так далее. Если множества (sets) — это “объекты”, то функции (functions / mappings) — это “стрелки” между объектами.
Что такое …
В абстрактной алгебре одна из первых реально важных идей такова: иногда разные с виду объекты удобно считать “одинаковыми” — не вообще, а в рамках выбранного правила. Для этого вводится отношение эквивалентности (equivalence relation).
Это не просто формальная академическая муть. Эта идея потом постоянно всплывает в криптографии и zero-knowledge в записях типа:
Z/nZ F_p G/H На первый взгляд блок про эквивалентность кажется простым и почти философским, но это важный кирпич. Без него потом сложнее …
В этой статье мы поговорим о законе Амдала (Amdahl’s law) и он том, в чём его суть.
Эта запись также доступна в нашем канале Telegram для разработчиков.
Сущность закона Амдала Этот интересный закон был придуман Джином Амдалом несколько десятилетий назад, его время от времени упоминают в контексте информационных систем, так что знать его суть не помешает.
Вообще, смысл данного закона весьма простой: если мы “улучшаем” (ускоряем) часть некой системы, то общий эффект на быстродействие всей системы …
В этой статье мы поговорим о понятиях big-endian и little-endian в computer science.
Эта запись также доступна в канале Telegram “DEV: Рубиновые тона”, а обсудить же эту тему можно в нашем чате Telegram.
Дом, который построил Свифт Частенько в руководствах и документации можно встретить термины big-endian и little-endian — да хотя бы в статье про кодировки UTF8 и ASCII. Но что эти понятия вообще значат? На самом деле, всё довольно просто: это буквально война тупоконечников и остроконечников (я …
В этой статье мы поговорим о том, как кодируется текст в современных компьютерах, а также о таких понятиях, как Unicode, UTF-8 и ASCII (и не только).
Это запись по следам видеоурока, который можно найти на YouTube:
Эта запись также доступна в канале Telegram “DEV: Рубиновые тона”, а обсудить же эту тему можно в нашем чате Telegram. Статья написана с использованием руководства Джоэля Спольского.
Зачем нужны кодировки? Люди говорят, думают и пишут на естественных языках, многие из которых …
В этой статье мы поговорим о дробных числах (float) и их представлении в компьютере, в частности, о том, как их описывает стандарт IEEE 754, принятый в 1985 году. Если вас интересует представление целых чисел, об этом можно почитать в предыдущей статье.
Это запись по следам видеоурока, который можно найти на YouTube:
Эта запись также доступна в канале Telegram “DEV: Рубиновые тона”, а обсудить же эту тему можно в нашем чате Telegram.
Дробные десятичные числа и их представления Чтобы было проще, …
Как целые числа представлены в современных компьютерах? Это немаловажный вопрос, ответ на который состоит из нескольких частей. Дело в том, что у нас есть обычные неотрицательные целые числа (uint), которые представляют собой последовательность от 0 и далее до бесконечности, и просто целые числа (int), которые могут быть и отрицательными, и положительными. Есть ещё числа дробные, но про них речь пойдёт в следующей статье.
Это запись по следам видеоурока, который можно найти на YouTube:
Эта …