В настоящее время известно большое число систем счисления. Подробный перечень (не знаю, насколько полный) приведен в англоязычной Википедии. В этом списке я не нашел ту систему, которая будет изложена здесь. Она относится к классу систем с переменным основанием (mixed radix). Предлагаю ее назвать Flexible number system with a Prime Radixes, сокращенно FPR-системой счисления.
Но для того, чтобы ее понять, необходимы знания некоторых понятий алгебры кортежей (АК) и частично упорядоченных множеств хотя бы в том объеме, который имеется в соответствующей статье в Википедии. Об АК кратко было рассказано в статье «Как совместить логику и семантику в одной алгебраической системе». Там же есть ссылки на публикации с более подробным описанием АК.
В данной статье будут обоснованы следующие преимущества предложенной системы счисления:
она универсальна - позволяет ТОЧНО выразить все (за исключением нуля) конечные целые и рациональные (с любым ненулевым целым числом в знаменателе) числа, а также некоторые классы иррациональных чисел;
ее использование позволяет сократить вычислительную сложность алгоритма умножения чисел;
в ней существенно уменьшается объем памяти для записи и хранения многих больших чисел.
Свойство гибкости
Для понимания данного текста важную роль играют такие понятия АК как схема отношения, фиктивная компонента и обобщенные операции. Напомню, что атрибуты – это имена переменных, домены – множества, задающие области значений атрибутов, схема отношения - заключенная в прямые скобки последовательность атрибутов, фиктивные компоненты в АК – это предельные значения доменов атрибутов: - множество всех значений соответствующего атрибута (полная компонента) и (пустая компонента).
Обобщенные операции – это операции с АК-объектами, имеющими разные схемы отношения. Для выполнения этих операций АК-объекты предварительно приводятся к одной схеме отношения с помощью простой операции добавление фиктивного атрибута. В частности, в ПРИМЕРе статьи Подсказки 1 и 2 («Во второй комнате нет тигра, а третья комната не пуста», «Первая комната не пуста, а во второй нет тигра») можно было выразить в сокращенных схемах отношения
и
.
Затем вычислить дополнение Подсказки 2 в сокращенной схеме отношения
и вычислить обобщенное пересечение, предварительно добавив на место отсутствующих фиктивные атрибуты,
Результат получился тот же самый.
Аналогично определяются и обобщенные отношения: объекты с разными схемами отношения перед проверкой равенства или включения приводятся к одинаковым схемам отношения с помощью добавления фиктивных атрибутов.
Обобщенные операции и отношения как раз и обеспечивают в математической системе свойство гибкости.
Стоит отметить, что схема отношения, с помощью которой можно придать системе свойство гибкости, полезна и в других разделах математики помимо реляционной алгебры, например, в теории функций многих переменных. Иногда это помогает упростить изложение, а в некоторых случаях избежать серьезных ошибок. Например, в логическом выводе на основе исчисления предикатов схема отношения не используется, в результате чего разрешается замена переменных в алгоритме унификации. Это приводит к тому, что в некоторых случаях искажаются заданные условия исходной задачи. Об этом можно прочитать в статье «Как вычислять интересные следствия» (с. 165).
Решетка числовых кортежей
Для представления чисел в FPR-системе счисления будут использоваться числовые n-кортежи (т.е. кортежи чисел длины n).
Решетка – это частично упорядоченное множество (сокращенно у-множество (poset)), для которого определены две операции: точная нижняя грань (обозначается inf или ) и точная верхняя грань (обозначается sup или ). В общем случае эти операции выполняются для всех пар элементов решетки, но бывают другие варианты (нам они не понадобятся). В отличие от просто верхней (или нижней) грани точная верхняя (нижняя) грань дает в результате единственный элемент решетки.
Рассмотрим у-множество, элементами которого являются числовые n-кортежи. Введем для них отношение порядка (обычно отношение порядка в общем случае для у-множеств обозначается , но мы этот знак будем здесь использовать для отношения «меньше или равно» для обычных чисел). Пусть даны числовые n-кортежи и . Определим для них отношение порядка и операции.
подтверждается, если и только если для всех . В противном случае n-кортежи не сравнимы.
Если числа, содержащиеся в n-кортежах, ограничить наибольшим и наименьшим значениями величины, то мы получим решетку, что вообще-то несложно доказать.
Помимо «решеточных» операций и для числовых кортежей можно ввести «экзотические» операции, например, сложение и вычитание:
Пока неясно, для чего они нужны, но дальше все станет понятным.
FPR-система счисления
Для числовых n-кортежей введем следующие обозначения и определения.
Рассмотрим возрастающий ряд простых чисел без пропусков и введем для них соответствующие обозначения :
Переменные будем использовать в качестве атрибутов числовых кортежей, строго соблюдая порядок в схемах отношений: атрибут расположен после атрибута лишь при условии .
Сначала рассмотрим вариант, в котором компонентами наших числовых кортежей будут неотрицательные целые числа. Они будут обозначать степени соответствующих простых чисел. Как известно, любое целое число можно разложить на простые множители. Например,
. Тогда, если использовать схему отношения, получим следующую запись этого числа с помощью числовых кортежей:
(после схемы отношения числа записывается числовой кортеж, с помощью которого это число можно выразить в позиционной системе счисления).
В качестве компонент в числовых кортежах допускаются отрицательные числа. Это позволяет отобразить в FPR-системе счисления любое положительное рациональное число. Например,
Известно, что любое число в степени 0 равно 1. Тогда можно считать, что компонента 0 в числовом кортеже играет роль фиктивной компоненты.
Например, число 484 можно выразить не только в схеме отношения , но и, допустим, в схеме отношения :
.
Отсюда ясно, что с помощью фиктивных компонент и соответственно фиктивных атрибутов можно выполнять операции с числами, у которых числовые кортежи имеют разные схемы отношения. В качестве примера вычислим произведение чисел 1176 и 495, используя числовые кортежи. Запишем эти числа в FPR-системе счисления:
.
.
Ясно, что схемы отношения у этих чисел разные, но мы можем сделать их одинаковыми, добавив недостающие фиктивные атрибуты. Тогда получим
.
.
Теперь, чтобы вычислить произведение этих чисел, нам достаточно вычислить «сумму» этих числовых кортежей, т.е. выполнить покомпонентное сложение. Получим
.
Операции в FPR-системе счисления
Обобщенное сложение (): после добавления недостающих фиктивных атрибутов в числовых кортежах вычисляются суммы соответствующих компонент. Эта операция соответствует произведению исходных чисел.
Обобщенное вычитание (): после добавления недостающих фиктивных атрибутов в числовых кортежах вычисляются разности соответствующих компонент. Эта операция соответствует делению исходных чисел.
Например, вычислим результат деления 495 на число 1176. В результате получим
По полученному числовому кортежу восстановим число
Обобщенная нижняя грань (): если числовые кортежи содержат только неотрицательные целые числа, то тут все понятно – мы вычисляем наибольший общий делитель (НОД) двух исходных чисел. А если в числовых кортежах содержатся отрицательные целые числа, тогда что? Нетрудно доказать, что это наибольшее рациональное число, результатом деления на которое исходных рациональных чисел, получатся целые числа.
Обобщенная верхняя грань (): для числовых кортежей с неотрицательными целыми числами вычисляется наименьшее общее кратное (НОК) исходных чисел.
Умножение на константу (имеется в виду умножение всех элементов числового кортежа на одну и ту же константу). Если константа – целое положительное k, то тут все понятно: исходное число возводится в степень k. А если константа дробь? Тоже ничего сверхъестественного: исходное число возводится в дробную степень. Тем самым появляется возможность выразить в FPR-системе счисления иррациональные числа.
Отрицательные исходные числа. Приведенные операции с числовыми кортежами показывают, что их элементами могут быть отрицательные и рациональные числа. С помощью таких числовых кортежей можно выразить все положительные целые, рациональные и некоторые классы иррациональных чисел (те, у которых сомножители являются результатом вычисления дробных степеней целых чисел). Невыразимо в этой системе точное значение нуля и отрицательные числа. Но с отрицательными числами положение можно легко исправить. Введем еще один атрибут . Тогда четное целое значение соответствующего элемента в числовом кортеже означает, что мы имеем дело с положительными исходными числами, если же соответствующее число в кортеже целое нечетное, то исходное число отрицательное.
А возможны ли для атрибута другие значения в числовых кортежах? На ум приходит число В этом случае нашему взору откроется мнимое число.
Отношения в FPR-системе счисления
Обозначим исходные числа в позиционной системе счисления, которым соответствуют числовые кортежи и , соответственно и .
Обобщенное отношение частичного порядка (). Если в числовых кортежах содержатся только неотрицательные целые числа, то это отношение соответствует известному отношению делимости () для множества положительных целых чисел. Если числовые кортежи содержат отрицательные целые числа, то исходные числа могут быть и дробями, но при этом если , то можно легко доказать, что результатом деления будет целое число. Это обстоятельство позволяет ввести новое отношение порядка по делимости не только для целых, но и для рациональных чисел (). А вот как интерпретируются случаи, когда в числовых кортежах содержатся несократимые дроби, пока непонятно.
-
Отношение порядка по величине. Ясно, что если , то всегда верно . Это можно легко доказать, используя свойство неубывания показательной функции , где
, а - неотрицательное действительное число.
Но если не соблюдается, то сравнение и по величине с помощью числовых кортежей становится проблемой.
Нерешенные проблемы
Хотя теории FPR-систем счисления пока что нет, но проблемы уже возникли. Но, может быть, это обстоятельство как раз и увеличивает шансы перехода данных заметок в теорию?
Проблема сравнения чисел по величине. Из предыдущего ясно, что из следует . Но если отношение порядка для числовых кортежей не соблюдается, то как проверить отношение порядка по величине для исходных чисел, не переводя их в позиционную систему счисления с постоянным основанием? Ответа на это вопрос нет, как нет и доказательства того, что такой алгоритм проверки для общего случая невозможен.
Проблема суммирования. Используя FPR-систему счисления, можно легко вычислить произведения и рациональные степени соответствующих чисел. Но можно ли построить алгоритмы для вычисления суммы чисел, не переводя их в традиционную систему счисления?
В процессе развития новой теории, несомненно, появятся и другие проблемы.
Позитивные моменты
Предложенная система позволяет точно выразить все конечные рациональные (за исключением 0) числа и некоторые классы иррациональных чисел.
Нетрудно проверить, что вычислительная сложность алгоритма вычисления произведения чисел в FPR-системе счисления линейно зависит от числа атрибутов (n) в обобщенной схеме отношения этих чисел, что соответствует оценке вычислительной сложности. Эта оценка существенно меньше оценок вычислительной сложности известных алгоритмов для традиционных систем счисления. Здесь возможно следующее возражение: но ведь перевод числа из FPR-системы счисления в традиционную требует немалых вычислительных ресурсов, которые не учитываются при оценке вычислительной сложности этого алгоритма для FPR-системы.
Отвечаю: все правильно, но всегда ли нам нужен такой перевод? Например, в промежуточных вычислениях можно обойтись и без перевода.
Для многих больших чисел FPR-система счисления позволяет значительно сэкономить место в памяти. Для тех, кто сомневается в этом, предлагаю сравнить объемы памяти для хранения записи и соответствующего ей числа , выраженного в традиционной системе счисления.
Заключение
Не исключено, что у этих заметок есть шанс стать основой для нового раздела в теории чисел. Впрочем, дойдет ли дело до этого, неизвестно. Сам я этим вряд ли займусь. Во-первых, потому что непрофессионал в теории чисел, а, во-вторых, мне более близки проблемы, связанные другими приложениями алгебры кортежей.
Но если кто-то всерьез займется этой проблемой, то на соавторстве не буду настаивать. И не буду возражать, если найдется более подходящее название для этой системы счисления. Например, можно назвать просто и без затей: К-система (не подумайте плохого: под буквой «К» подразумевается не моя фамилия, а слово «Кортеж»).
Но от ссылки на эту статью не откажусь.
Продолжение следует.
Дизайн баннера выполнен Анной Горской
Комментарии (26)
funca
07.08.2023 13:52Но можно ли построить алгоритмы для вычисления суммы чисел, не переводя их в традиционную систему счисления?
Разве для этого не нужно уметь выразить 0 из традиционной системы счисления? Одним из свойств операции сложения является существование нейтрального элемента, а он у вас (вроде как) невыразим.
AntiLogik Автор
07.08.2023 13:52Мне думается, что построить общий алгоритм для вычисления суммы чисел, представленных в FPR-системе счисления, нельзя. Но это (как сказано в статье) надо еще доказать. Может быть, отсутствие нуля в этой системе и, как Вы заметили, необходимость нуля в операции сложения, можно использовать в этом доказательстве. Пока не знаю.
Viceroyalty
07.08.2023 13:52+1Разрешите немного по занудствовать: обязателен ли для определения операции сложения нейтральный элемент?
Просто тогда множество не будет обладать свойствами которых мы, вероятно, ожидаем.
То есть не получится поле/кольцо/группа и т.п., соответственно не будет и их свойств, а равно и огромное количество знаний накопленных математиками для распространённых типов множеств будет не применимо.
Но что нам мешает определить операцию сложения без нейтрального элемента? Пусть даже определить экзотически?
Хотя, возможно, это не относится к случаю описываемому в статье
AntiLogik Автор
07.08.2023 13:52+1У меня нет четких ответов на Ваши вопросы. Спасибо за комментарий.
Naf2000
07.08.2023 13:52Здесь нейтральным элементом является кортеж из нулей, то есть 1. Построен же изоморфизм между рациональными и положительными и вот этими кортежами. В рациональных это умножение, а тут покомпонентное сложение.
qw1
07.08.2023 13:52+1Если строго, это не система счисления.
Т.к. СС — способ записи числа в каком-то алфавите, например, { 0, 1, 2, ..., 9 }Формально, надо было начинать с определения алфавита.
Может ли одна система счисления опираться на другую?
Например, в записи N [ R181 ] (56) что есть 181 и 56, как не числа в десятичной системе?AntiLogik Автор
07.08.2023 13:52Не понимаю, почему строгие определения возможны только с точки зрения теории формальных систем? Тогда многих математиков надо выгнать с работы за «нестрогость».
Вы пишете «Может ли одна система счисления опираться на другую?»
Может. В математической литературе некоторые системы счисления описаны с помощью десятичной системы. И весьма часто встречаются случаи, когда при определении новой системы используется другая подобная система и при этом получается система, отличающаяся по свойствам от исходной. Что-то вроде рекурсивного определения.
Naf2000
07.08.2023 13:52+1Вообще говоря вы "открыли" изоморфизм между группой положительных рациональных чисел и последовательностями целых чисел с конечным числом ненулевых членов с операцией по-компонентного сложения.
AntiLogik Автор
07.08.2023 13:52Причем здесь группа? Числовые кортежи – это решетки, т.е множества элементов с двумя операциями и отношением частичного порядка. А сколько операций в группах? И есть ли там отношение частичного порядка?
Naf2000
07.08.2023 13:52А где у вас две операции? Вычитание это сложение со взятием обратного элемента. Решётки прекрасно строятся, если группа частично упорядочена и есть супрематизм/инфинум для любых двух элементов.
Но я хотел обратить внимание на природу данного множества всего лишь.
AntiLogik Автор
07.08.2023 13:52-1В моей статье помимо вычитания и сложения для числовых кортежей определены операции inf и sup и умножение на константу (целую или дробную). И еще. Я не уверен, в том, что когда в группу добавляют частичный порядок и «супрематизм/инфинум для любых двух элементов» (???), то она остается группой.
wataru
07.08.2023 13:52+1Вообще, чтобы задать эту "систему счисления" не надо всей этой теории. Вы ее кстати нигде и не использовали и никаких свойств такой записи чисел не вывели оттуда. Просто взяли оттуда какие-то определения.
Достаточно просто сказать: давайте хранить степени простых чисел в разложении числа на простые множетели. Сразу становится очевидно, как числа пермножать, делить, что значат отрицательные "цифры", как найти НОК или НОД.
Этот прием довольно известен и часто используется при решении задачек на комбинаторику.
AntiLogik Автор
07.08.2023 13:52Мне все же кажется, что «теория» нужна. Чтобы понять, какой структуре соответствуют последовательности степеней, какие операции и отношения в них возможны, как эти операции и отношения соотносятся с операциями и отношениями с исходными числами, как степени привязывать к определенным простым сомножителям и т.д.
wataru
07.08.2023 13:52Всмысле, какой структуре? Структура — набор степеней и все. Бесконечный ряд с почти всюду нулями. Какие операции возможны вытекает из основной теоремы арифметики и вот и вся теория, которая тут нужна. Вы тут сову на глобус натягиваете. Так-то и целые числа можно представлять ввиде множеств и формально выводить все арифметические операции. Но стоит ли этим всеръез заниматься?
AntiLogik Автор
07.08.2023 13:52-1Вы отказываете мне в праве связывать используемые в статье математические объекты с другими математическими объектами? Что, по Вашему, числовой кортеж? Группа (как считают некоторые комментаторы), решетка или алгебраическая система, не имеющая названия, поскольку в ней помимо inf и sup есть другие операции? Как прикажете назвать операции inf и sup в числовых кортежах, если они таковыми и являются, и дано объяснение для чего они нужны? Насчет вопроса, стоит ли «всеръез заниматься», ответ сейчас мало кто знает. Время покажет.
wataru
07.08.2023 13:52Связывайте что хотите, с чем хотите. Но не отказывайте читателям в праве указывать, что тут сова натянута на глобус.
AntiLogik Автор
07.08.2023 13:52+1Спасибо за разрешение связывать. Хотел бы также заметить, что я Вам не отказывал «в праве указывать, что тут сова натянута на глобус».
ripatti
07.08.2023 13:52+2Ну норм группа, похожие штуки уже давно придуманы и даже используются на практике
https://ru.wikipedia.org/wiki/Нумерация_Гёделя
https://ru.wikipedia.org/wiki/Гладкое_число
https://ru.wikipedia.org/wiki/Алгоритм_Диксона
Из всего, что здесь написано, интерес представляют идеи использования дробных и отрицательных чисел в некоторых местах. Но, думаю, математики уже давно додумались до применения такого в своих задачах.
funca
07.08.2023 13:52Ну математики тоже люди, кто-то может додумался, а кто-то нет. Нормальные научные работы всегда опираются на существующий опыт - иначе это не наука, а фантастика. Наличие подобных работ говорит лишь о том, что автор в принципе на верном пути.
AntiLogik Автор
07.08.2023 13:52Это мой ответ ripatti. Почему-то не вставился в нужное место.
Выговорите, что это группа. Но группа слишком упрощает эту систему, так как в этой системе минимум две «решеточные» операции и отношение частичного порядка. И еще надо добавлять операции (сложение, вычитание и умножение на константу кортежей). Для описания этой системы и решетки не достаточно.
И к тому же Вы мне приписываете то, чего я не говорил. И критикуете за это. Я нигде в статье не утверждал, что простые множители и их степени до меня не использовались, а Вы в качестве возражения приводите мне примеры, где они используются. В моей статье описывается способ описания обширного множества чисел (целые, дроби, с дробными степенями), в это множества входят и те частные случаи, на которые Вы ссылаетесь.
Abobcum
Поздравляю с открытием. Не пытались ли вы совершенно случайно написать библиотеку и сравнить её с int, float и векторными вычислениями? Лично мне кажется, что для каждого числа вычислять количество и степени простых множителей слишком затратно.
AntiLogik Автор
Спасибо за поздравление. Только я не понял, почему Вы слово «открытие» не написали в кавычках? Тогда Ваше сообщение об интимных отношениях между десятичной системой и логарифмом было бы к месту.
Библиотеку не пытался писать – у меня другая специализация. Что касается затратности вычислений, то ведь они (вычисления) не всегда и нужны. В промежуточных вычислениях и при хранении данных можно и без них обойтись. Да, мало ли где еще? Нам не дано предугадать…