habrahabr

Математическая продлёнка. Изобретаем целые числа

  • среда, 4 декабря 2024 г. в 00:00:11
https://habr.com/ru/articles/861174/

В этой мини-серии статей я хочу объединить свои заметки для математического кружка о различных необычных, но полезных числовых системах, основанных на парах чисел. План знакомства с числовыми системами будет такой:

  1. В этой статье мы (признаюсь, достаточно занудно) построим из натуральных чисел целые, при этом познакомимся с важнейшими инструментами математики: упорядоченной парой, эквивалентностью и факторизацией.

  2. Во второй части от целых мы перейдём к рациональным числам, которые тоже можно представить в виде пары — рациональной дроби. Главный вопрос на который мы постараемся ответить: «А чего у дробей всё так сложно-то?»

  3. В третьей части мы сконструируем Гауссовы числа и порассуждаем над более общим вопросом: «Что такое число?». В этой части мы перейдём от пар к матричным представлениям чисел, что позволит нам ввести их классификацию.

  4. Четвёртая часть будет посвящена эллиптическим арифметикам: комплексным числам и числам Эйзенштейна. Здесь мы порассуждаем над сакраментальным вопросом: «Реальная ли мнимая единица?»

  5. В пятой части мы рассмотрим гиперболические арифметики и познакомимся с двойными числами, и немного используем их на практике, чтобы понять «Как работает формула Бине?»

  6. Шестая часть завершит эту серию. Она расскажет о параболических арифметиках, в частности, о дуальных числах, которые позволят арифметике быть неточной. Кроме того, мы порассуждаем о том как вписать в нашу классификацию рациональные дроби.

Предупреждение! Первые две статьи достаточно техничные. Они нужны для полноты изложения и носят дидактический характер, полезный для того, чтобы приобщить маткружковцев к духу математики. Однако особых открытий они в себе не таят. За открытиями милости прошу в третью и последующие части, однако для того чтобы понять почему всякая экзотика типа дуальных или двойных чисел вообще имеет право называться числами, имеет смысл заглянуть в первые две части. Для тех кто давно уже в теме, сразу скажу, что они не выходят за пределы стандартного введения в теорию чисел, уровня книжки И. В. Арнольда.

Целые числа

Считать на палочках умеют не только дошколята, но и некоторые смышлëные еноты и даже птицы, такие как вороны, попугаи и павлины. В свою очередь, смышлëные математики поняли, что вместо кучек палочек можно использовать абстракции, например, натуральные числа и быстро забыли про палочки. А что если добавить к палочкам камешки? Получится ли с их помощью выразить что-то иное, существенно отличающееся от натуральных чисел?

Считать на палочках легко: две палочки, да три палочки будет пять палочек, в двух кучках по три палочки всего шесть палочек. Так мы учимся основам арифметики, потому что кучки палочек при сложении, умножении или сравнении, ведут себя как кучки чего угодно. А потом незаметно для себя, мы переходим от палочек к числам и встречаемся с первой серьёзной математической абстракцией: натуральным числом.

Натуральные числа используются нами для счёта неделимых вещей и предметов. Такие числа можно сравнивать между собой и упорядочивать. Их можно складывать, перемножать, возводить в степень, снова получая натуральные числа. Наконец, иногда их можно вычитать (если вычитаемое не превышает уменьшаемого) и делить (если делимое кратно делителю).

А что будет, если прибавить к семи палочкам три камешка? Можно повысить степень абстракции, и сказать, что мы получим десять предметов. Но вообще-то это будет две чётко различимые кучки: 7 палочек и 3 камешка. Если их засунуть в мешок, встряхнуть и снова высыпать, информация никуда не денется, мы опять получим 7 палочек и 3 камешка. В математике такая конструкция из двух несмешиваемых величин называется упорядоченной парой. В нашем случае, мы получили пары натуральных чисел, которые будем записывать следующим образом: (a,b) Первое число всегда обозначает количество палочек, а второе — количество камешков.

Упорядоченная пара натуральных чисел 7 и 3.
Упорядоченная пара натуральных чисел 7 и 3.

Тут надо сделать техническое замечание. Глядя просто на 7 палочек, без камешков, мы не поймём, что перед нами упорядоченная пара. Так что для определённости в любой паре должны быть и палочки и камешки, хотя бы по одной штуке. Это, к тому же, соответствует устоявшейся в нашей стране традиции начинать ряд натуральных чисел с единицы, а не с нуля.

Итак, мы получили бесконечное множество пар натуральных чисел, теперь попробуем собрать из них корректную числовую систему, а точнее, кольцо.

Алгебраическим кольцом называется множество, на котором определены операции сложения, вычитания и умножения, такие, что для сложения выполняются переместительный и сочетательный законы, для умножения — сочетательный и распределительный. Кроме того, для сложения есть единственный нейтральный элемент — ноль, и у каждого числа есть противоположное, такое, что в сумме они дают этот самый нейтральный элемент. Как видно, натуральные числа кольцом не являются, поскольку в них отсутствуют противоположные числа и нет нуля.

Сложение

Определим сложение для пар так, как складывались бы настоящие кучки палочек и камешков. Сложив две пары, мы получим новую пару, в которой отдельно сложатся палочки и отдельно — камешки:

(a, b) + (c, d) = (a + c, b + d).

Из-за того, что в натуральных числах все необходимые законы для сложения (переместительный и сочетательный) выполняются, они будут выполняться и для сложения пар. Так что с этим возиться не придётся.

Классы эквивалентности

Мы легко различим две пары (8, 5) и (4, 1), и выглядят они по-разному и весят тоже, если собрать их из настоящих палок и камней. Но есть в них кое-что общее, а именно, разница между количеством палок и камней в обеих парах одинаковая: 8 - 5 = 4 - 1 = 3.

Мы станем считать такие пары эквивалентными. Эквивалентность, это не равенство, однако оно очень на него похоже. Обозначается оно так a \sim b. При этом должны выполняться три закона:

1) a \sim a

2) если a \sim b, то b \sim a,

3) если a \sim b и b \sim c, то непременно a \sim c.

Таким образом, мы будем говорить, что пары (a, b) и (a + c, b + c) не равны, но эквивалентны друг другу, если дадим корректное определение. Например, такое:

Отношение эквивалентность (a, b) \sim (c, d) выполняется, если найдётся такое натуральное n, что с = a + n, d = b + n либо a = c + n, b = d + n.

То есть, (7, 3) ≠ (5, 1), но (7, 3) \sim (5, 1), потому что (7, 3) = (5 + 2, 1 + 2). Как видим, эквивалентность более мягкое отношение, чем равенство.

Я не буду, как полагается, доказывать, что определённое нами отношение это настоящая эквивалентность (можете сделать это сами), а сразу перейду к тому ради чего математики вводят эквивалентность к факторизации и разбиению на классы эквивалентности.

В силу третьего свойства эквивалентности, всё множество пар можно разделить на непересекающиеся подмножества — классы, в которых все элементы эквивалентны друг другу. Классы мы будем обозначать квадратными скобками. Так, в класс [a] попадут все пары (a + n, n), где n = 1, 2, 3, ...

Если правильно построить отношение эквивалентности, то проявится замечательное свойство классов: возможность обобщения на классы операций, определённых для элементов.

Сейчас мы увидим, как это происходит. Давайте сложим два числа из разных классов

(a + n, n) + (b + m, m) = (a + b + n + m, n + m).

Смотрите-ка, результат сложения попадёт в класс, соответствующий их сумме, для любых чисел n и m. Это значит, что мы можем записать это же выражение для классов:

[a] + [b] = [a + b].
Иллюстрация того, как сумма элементов из класса [2] в сумме с элементами из [3] дают результат, попадающий в класс [5].
Иллюстрация того, как сумма элементов из класса [2] с элементами из [3]дают результат, попадающий в класс [5].

Разбиение на классы эквивалентности, позволяющее использовать классы вместо элементов, и согласующееся с операциями алгебраической структуры, называется её факторизацией.

Нейтральный элемент

Теперь мы можем сконструировать нейтральный элемент, то ест, ноль, которого не было в натуральных числах. Если пары (a, b) и (a + n, b + n) эквивалентны, то это значит, что прибавление пары (n, n) к паре (a, b) не меняет класса, к которому эта пара принадлежит. Более того, все пары (n, n) эквивалентны друг другу и не эквивалентны никаким парам из других классов. Они формируют отдельный класс, который мы можем обозначить как [0], и записать:

[a] + [0] = [a],

что в переводе с языка классов означает:

(a, b) + (n, n) \sim (a, b).

Если вам кажется, что это надувательство, и никакого нуля из камней и палок мы не собрали, то подумайте над этим вот как. Если у нас в мешке 115 палок и 110 камней, то это очень тяжёлый мешок, в котором палок на пять штук больше, чем камней. Если мы выложим по 100 камней и палок, то нам станет куда легче и тащить и считать, и при этом мы не потеряем информацию о том чего и насколько было больше. Факторизация позволяет нам сосредоточиться на главном — на разнице в количестве предметов.

Вычитание

Раз уж мы заговорили о разнице, то пора поразмыслить о вычитании. В натуральных числах вычитать надо осторожно, чтобы из меньшего не отнять большее. Поскольку в наших парах палки и камни обозначают натуральные числа, мы не можем просто записать, что (a, b) - (c, d) = (a - c, b - d), потому что в результате могут кончиться предметы. Нам надо как-то хитро определить вычитание, используя только сложение.

Вспомним, что в определении кольца есть упоминание о противоположных элементах, таких, что в сумме они дают ноль. Рассмотрим сумму (a, b) + (x, y) = (a + x, b + y). Результат будет эквивалентен нулю только если a + x = b + y. Для натуральных чисел единственный вариант решения: x = b, y = a. То есть

(a, b) + (b, a) = (a + b, a + b) \in [0].

Обозначим противоположный элемент привычным знаком «минус», и получим

-(a, b) = (b, a).

Очевидно, что два различных элемента в паре можно переставить местами лишь двумя способами, а значит, -(-(a, b)) = (a, b). Кроме того, если a = b, то от перестановки пара не изменится, а значит -(a,a)=(a,a).

Очевидно теперь, что для любого класса [a] можно определить противоположный ему класс -[a]. Давайте честно сложим друг с другом элементы из противоположных классов:

(a + n, n) + (m, a + m) = (a + n + m, a + n + m) \sim (a, a),

это подтверждает, что [a] + (-[a]) = [0] для всех классов [a].

Имея противоположные пары, нам совсем нетрудно определить операцию вычитания, как сложение с обратным элементом:

(a, b) - (c, d) = (a, b) + (d, c) = (a+d, b+c).

Ощутите всю прелесть этого построения: мы определили вычитание, использовав только сложение! В натуральных числах вычитать можно не всегда, а разность пар существует во всех случаях, ведь их элементы мы только складываем.

Давайте проверим, как это работает. Вычтем например из пары (9, 4) пару (18, 15) :

(9, 4) − (18, 15) = (9 + 15, 4 + 18) = (24, 22).

Мда.. разу и не понять, работает, или нет? А если посмотреть на классы?

(9, 4) ∈ [5],\quad (18, 15) ∈ [3],\quad (24, 22) ∈ [2].

Получается, мы вычли [3] из [5] и получили [2]. Всё верно. Но 3 из 5 мы и на палочках могли вычесть. А если наоборот?

(18, 15) - (9, 4) = (18 + 4, 15 + 9) = (22, 24).

Получили пару, противоположную (24, 22). Если мы обозначим знаком минус противоположные классы, то сможем записать, что [3] - [5] = -[2]. Всё работает исправно! Наша модель целых чисел замкнута относительно вычитания!

Вот как разбиваются на классы эквивалентности все упорядоченные пары:

Факторизация множества пар. По сторонам бесконечного квадрата, образованного парами, выстроилась бесконечная в обе стороны линия классов. Начинает проступать привычный образ целых чисел!
Факторизация множества пар. По сторонам бесконечного квадрата, образованного парами, выстроилась бесконечная в обе стороны линия классов. Начинает проступать привычный образ целых чисел!

Зелёные стрелки объединяют эквивалентные пары и помещают их в соответствующий класс. Легко увидеть, что для любой пары найдется единственный класс:

(a,b) \in \begin{cases}[a-b],& a > b\\ [0], &a = b\\ -[b-a], & a < b\end{cases}

Афинная модель

Модель целых чисел, как пар палочек и камешков даёт отличную интерпретацию операции сложения. При этом нейтральный, противоположный элемент и вычитание выглядят несколько искусственно. Полезно рассмотреть представление этой же системы в виде небоскрёба с лифтом. Этажи небоскрёба пронумерованы натуральными числами, начиная с 1, а пара (a, b) в этой модели обозначает перемещение с этажа a на этаж b.

Противоположный элемент — это поездка в другую сторону. Сумма противоположных поездок естественным образом возвращает нас на исходный этаж, что даёт нейтральный элемент (a, a) — «нулевое» перемещение.

Так же очень естественно в этой модели производится разбиение на классы. Класс [a] объединяет в себе все перемещения на a этажей вниз, при этом мы теряем информацию о том, с какого этажа мы начинаем поездку. Противоположный класс -[a] соответствует любым перемещениям вверх на a этажей.

А вот сумма перемещений в этой модели выглядит странно. Например, как понимать, что (3, 7) + (10, 3) = (13, 10). Это никак не похоже на сложение перемещений: подъём с третьего этажа на седьмой после добавлении перемещения на семь этажей вниз, превратился в спуск с тринадцатого этажа на десятый. Крайне не интуитивно! На уровне классов же всё работает прекрасно, и этот же пример выглядит как -[4] + [7] = [3].

В математике у такого представления есть имя: одномерное афинное пространство, построенное над натуральными числами. Афинные пространства это предмет изучения геометрической алгебры, и в школе мы с ними явно не встречаемся.

Афинное пространство похоже на векторное, и возможно, кто-то из читателей предположил, что я сведу все свои рассуждения к векторам. Но пример со сложением должен вас насторожить. Векторы, как вы помните, складываются покомпонентно, как и наши пары. Но это сложение имеет совсем иной геометрический смысл и реализует другую модель, о которой мы поговорим, когда будем рассматривать гауссовы числа.

И ещё немного о факторизации

Мы в жизни часто используем разбиение на классы эквивалентности и факторизацию, сами того не осознавая. Например, когда говорим, что «Весам в паре хорошо подходят Львы и Овны, а вот с Девами крепкого союза не получится». Как бы мы не относились к разбиению на классы по знакам зодиака, мы факторизуем иножество людей с его помощью и начинаем оперировать знаками так, как если бы это были конкретные личности. Обратите внимание на «бытовую» факторизацию людей по полу, национальности, профессии... Это свойственно нашему мышлению, но таит в себе опасности, поскольку в отличие от математики, никто не трудится строго доказывать, что факторизующее отношение является эквивалентностью и согласуется с реальными отношениями между людьми.

Наконец, когда мы вместо трёх палочек, трёх камней или трёх миллиардов звёзд, начинаем говорить о числе «три», то мы делаем ни что иное, как факторизацию множества всех кучек счётных объектов, по следующему отношению эквивалентности:

Кучка каких-то объектов эквивалентна кучке других объектов, если каждому объекту из первой кучки можно поставить в пару единственный объект из второй кучки.

Процесс составления упорядоченных пар из объектов или слов, мы и называем пересчётом.
Процесс составления упорядоченных пар из объектов или слов, мы и называем пересчётом.

Таким образом, натуральное число «три» — это класс эквивалентности, объединяющий в себе все кучки из любых предметов, которые можно разбить на упорядоченные пары с элементами множества {раз, два, три}.

Отношение порядка

Коль скоро мы сообразили, что целые числа оказались «зашиты» в разницу между первым элементом пары и вторым, то имеет смысл использовать эту разницу, для определения отношения порядка на базе сравнения натуральных чисел, и написать так:

(a,b)\leq(c,d) \iff a-b\leq c-d.

Но элементы пары — это натуральные числа, операция вычитания для них корректно не определена. Это не беда, формально перенесём слагаемые, и получим менее очевидное, но корректно определённое отношение:

(a,b)\leq(c,d) \iff a+d\leq b+c.

Выглядит хорошо, но сработает ли наша уловка? Проведём эксперимент: сравним [3] и [5], вернее, какие-либо экземпляры этих классов, скажем: (4, 1) < (7,2) потому что 4 + 2 < 1 + 7.

А как насчëт [3] и –[5]?

(4, 1) > (2, 7) потому что 4 + 7 > 1 + 2.

И, наконец, сравним два экземпляра одного класса [3]:

(4, 1) = (9,6) потому что 4 + 6 = 1 + 9.

Похоже, работает!

Очень легко доказать, что отношение порядка согласуется с разбиением на классы:

(a+n,b+n)\leq (c+m,d+m)\\ \Updownarrow \\a+n+d+m \leq b+n+c+m\\ \Updownarrow \\ a+d \leq b + c \\ \Updownarrow \\ (a,b) \le (c,d)

Согласуется сравнение и с операцией сложения:

(a,b)+(n,m)\leq(c,d)+(n,m)\\ \Updownarrow \\(a+n,b+m)\leq(c+n,d+m)\\ \Updownarrow \\a+n+d+m\leq b+m+c+n\\ \Updownarrow \\a+d \leq b + c\\ \Updownarrow \\ (a,b) \le (c,d)

На язык классов последний результат переводится так:

[x]+[z] \le [y]+[z] \iff [x] \le [y],

a это значит, в нашей модели целых чисел можно решать простейшие уравнения и неравенства, стандартным методом вычитания из обеих частей одинаковых величин.

Ключевое отличие в отношениях порядка, определённых над натуральными числами и над целыми, состоит в том, что в отличие от целых, среди натуральных чисел существует минимальный элемент. На этом факте основаны метод индукции и анализ завершаемости алгоритмов, так что это довольно важное обстоятельство. Наша модель целых чисел использует исключительно натуральный инструментарий, так что отсутствие минимального элемента не очевидно и его надо доказывать.

Это нетрудно сделать, во-первых, показав, что для любого числа [x] можно построить число [x] − [1], а во-вторых, что оно будет меньше исходного:

1) Существование:

(a,b)-[1]=(a,b)+(x,x+1)=\\=(a+x,b+x+1)\sim (a,b+1).

2) Порядок:

(a,b+1)<(a,b) \iff a+b < a+b+1.

Поскольку никаких ограничений на сравниваемые суммы мы не накладывали, можно заключить, что пары образуют линейно упорядоченное множество, в котором любые два элемента сравнимы, причём однозначно. Однозначность сравнения надо доказывать отдельно, но тут я не хочу раздувать этот материал.

Умножение

Наконец, мы готовы определить операцию умножения для наших пар. В качестве подсказки, вновь формально используем разницу между элементами пары:

(a-b)\times(c-d)=ac+bd-(ad+bc).

А теперь превратим разницы натуральных чисел в пары, сделав, как обычно, уменьшаемое первым элементом, а вычитаемое — вторым:

(a,b)\times(c,d) = (ac+bd, ad+bc).

Ну, что же, никаких операций, запрещённых для элементов пары, мы не используем, значит эта операция, как минимум, корректно определена. Давайте её испытаем:

[2]\times[3]=(3,1)\times(4,1) = (13, 7) \sim [6],\\ (-[2])\times[3]=(1,3)\times(4,1) = (7,13)\sim -[6],\\ (-[2])\times(-[3])=(1,3)\times(1,4) = (13,7)\sim [6].

Предлагаю читателям самостоятельно доказать, что операция умножения согласована с классами эквивалентности и порядка, а также, что для умножения и сложения выполняется распределительный закон, вытекающий из распределительного закона для натуральных чисел.

Полезно также посмотреть на то, как происходит умножение на особые значения: [1][0], и −[1] и убедиться в том, что все правила умножения выполняются. Поздравляю, мы построили действующую модель кольца целых чисел!

* * *

Благодарю вех дочитавших за терпение ☺ В следующей статье мы из пары целых чисел построим поле рациональных чисел, как фактормножество рациональных дробей. Смысл этих построений состоит в том, чтобы показать почему правила сложения, перемножения и сравнения дробей не могут быть иными.

Оглавление серии

  1. Изобретаем целые числа

  2. Изобретаем рациональные дроби

  3. Изобретаем числа по-взрослому

  4. Изобретаем эллиптические числа

  5. Изобретаем гиперболические числа

  6. Изобретаем параболические числа