Биективная нумерация — это любая числовая система , в которой каждое неотрицательное целое число может быть представлено только одним способом с использованием конечной строки цифр . Название относится к биекции (т. е. взаимно-однозначному соответствию), которая существует в этом случае между набором неотрицательных целых чисел и набором конечных строк с использованием конечного набора символов («цифр»).
Большинство обычных систем счисления, таких как общая десятичная система, не являются биективными, поскольку более одной строки цифр могут представлять одно и то же положительное целое число. В частности, добавление ведущих нулей не меняет представленное значение, поэтому «1», «01» и «001» представляют число один . Несмотря на то, что только первая является обычной, тот факт, что возможны и другие, означает, что десятичная система не является биективной. Однако унарная система счисления , имеющая только одну цифру, является биективной.
Биективная база - k нумерация - это биективная позиционная нотация . Она использует строку цифр из набора {1, 2, ..., k } (где k ≥ 1) для кодирования каждого положительного целого числа; позиция цифры в строке определяет ее значение как кратное степени k . Смаллиан (1961) называет эту нотацию k -адической, но ее не следует путать с p -адическими числами : биективные числа - это система для представления обычных целых чисел конечными строками ненулевых цифр, тогда как p -адические числа - это система математических значений, которые содержат целые числа как подмножество и могут нуждаться в бесконечных последовательностях цифр в любом числовом представлении.
Биективная система счисления с основанием k использует набор цифр {1, 2, ..., k } ( k ≥ 1) для уникального представления каждого неотрицательного целого числа следующим образом:
Напротив, стандартную позиционную нотацию можно определить с помощью аналогичного рекурсивного алгоритма, где
Для базы , биективная система счисления базы может быть расширена до отрицательных целых чисел таким же образом, как и стандартная система счисления базы, с использованием бесконечного числа цифр , где , представленных в виде бесконечной влево последовательности цифр . Это происходит потому, что суммирование Эйлера
это означает, что
и для каждого положительного числа с биективной нумерацией цифровое представление представлено как . Для основания отрицательные числа представлены как с , в то время как для основания отрицательные числа представлены как . Это похоже на то, как в знаковых цифровых представлениях все целые числа с цифровыми представлениями представлены как , где . Это представление больше не является биективным, так как весь набор бесконечных влево последовательностей цифр используется для представления -адических целых чисел , из которых целые числа являются лишь подмножеством.
Для данной базы ,
Для данной базы ,
Биективная система счисления с основанием 10 — это позиционная система счисления с основанием 10 , в которой для представления нуля не используется цифра . Вместо этого в ней есть цифра для представления десяти, например, A.
Как и в обычной десятичной системе , каждая цифра представляет собой степень десяти, так, например, 123 — это «сто плюс два десятка плюс три единицы». Все положительные целые числа , представленные исключительно ненулевыми цифрами в обычной десятичной системе (например, 123), имеют одинаковое представление в биективной десятичной системе счисления. Те, которые используют ноль, должны быть переписаны, так, например, 10 становится A, обычная 20 становится 1A, обычная 100 становится 9A, обычная 101 становится A1, обычная 302 становится 2A2, обычная 1000 становится 99A, обычная 1110 становится AAA, обычная 2010 становится 19AA и так далее.
Сложение и умножение в этой системе по сути такие же, как и в обычной десятичной, за исключением того, что переносы происходят, когда позиция превышает десять, а не когда она превышает девять. Таким образом, для вычисления 643 + 759 есть двенадцать единиц (напишите 2 справа и перенесите 1 в разряд десятков), десять десятков (напишите A без необходимости переноса в разряд сотен), тринадцать сотен (напишите 3 и перенесите 1 в разряд тысяч) и одна тысяча (напишите 1), чтобы получить результат 13A2 вместо обычного 1402.
В биективной системе счисления с основанием 26 можно использовать буквы латинского алфавита от «A» до «Z» для представления 26-значных значений от одного до двадцати шести . (A=1, B=2, C=3, ..., Z=26)
При таком выборе обозначения последовательность чисел (начиная с 1) начинается с A, B, C, ..., X, Y, Z, AA, AB, AC, ..., AX, AY, AZ, BA, BB, BC, ...
Каждая цифровая позиция представляет собой степень числа двадцать шесть, так, например, число WI представляет значение 23 × 26 1 + 9 × 26 0 = 607 в десятичной системе счисления.
Многие электронные таблицы , включая Microsoft Excel, используют эту систему для назначения меток столбцам электронной таблицы, начиная с A, B, C, ..., Z, AA, AB, ..., AZ, BA, ..., ZZ, AAA и т. д. Например, в Excel 2013 может быть до 16384 столбцов (2 14 в двоичном коде), помеченных от A до XFD. [3] Варианты вредоносных программ также именуются с использованием этой системы: например, первый распространенный макровирус Microsoft Word, Concept, официально называется WM/Concept.A, его 26-й вариант WM/Concept.Z, 27-й вариант WM/Concept.AA и т. д. Вариант этой системы используется для именования переменных звезд . [4] Его можно применять к любой проблеме, где желательно систематическое именование с использованием букв, при этом используя максимально короткие строки.
Тот факт, что каждое неотрицательное целое число имеет уникальное представление в биективной системе счисления с основанием k ( k ≥ 1), является « народной теоремой », которая была открыта заново много раз. Ранние примеры — Фостер (1947) для случая k = 10, а также Смаллян (1961) и Бём (1964) для всех k ≥ 1. Смаллян использует эту систему для предоставления гёделевской нумерации строк символов в логической системе; Бём использует эти представления для выполнения вычислений на языке программирования P′′ . Кнут (1969) упоминает особый случай k = 10, а Саломаа (1973) обсуждает случаи k ≥ 2. Форслунд (1995) представляется еще одним переоткрытием и выдвигает гипотезу, что если древние системы счисления использовали биективное основание k , они могли не распознаваться как таковые в археологических документах из-за общей неосведомленности об этой системе.