Унарная система счисления - Unary numeral system
Системы счисления |
---|
Индусско-арабская система счисления |
Восточная Азия |
Европейский |
Американец |
По алфавиту |
Бывший |
Позиционные системы от база |
Нестандартные позиционные системы счисления |
Список систем счисления |
В унарная система счисления простейшая система счисления для представления натуральные числа:[1] представлять число N, повторяется символ, представляющий 1 N раз.[2]
В унарной системе число 0 (ноль) представлен пустой строки, то есть отсутствие символа. Числа 1, 2, 3, 4, 5, 6, ... представлены в унарном формате как 1, 11, 111, 1111, 11111, 111111, ...[3]
в система позиционной записи, унарный - это биективный база -1 система счисления. Однако, поскольку значение цифры не зависит от ее положения, можно утверждать, что унарная система не является позиционной системой.[нужна цитата ]
Использование отметки в счетах применяется унарная система счисления. Например, используя метку подсчета |, число 3 представлено как |||. В Восточная Азия культур цифра 3 представлена как 三, персонаж, нарисованный тремя штрихами.[4] (Один и два представлены аналогично.) В Китае и Японии символ 正, нарисованный 5 штрихами, иногда используется для обозначения 5.[5][6]
Унарные числа следует отличать от объединяет, которые также записываются как последовательности единиц, но имеют свои обычные десятичная дробь числовая интерпретация.
Операции
Дополнение и вычитание особенно просты в унарной системе, так как включают в себя немногим конкатенация строк.[7] В Вес Хэмминга или операция подсчета совокупности, которая подсчитывает количество ненулевых битов в последовательности двоичных значений, также может интерпретироваться как преобразование из унарного в двоичные числа.[8] Однако, умножение является более громоздким и часто используется в качестве тестового примера для разработки Машины Тьюринга.[9][10][11]
Сложность
По сравнению со стандартным позиционные системы счисления, унарная система неудобна и поэтому не используется на практике для больших вычислений. Это происходит в некоторых проблема решения описания в теоретическая информатика (например, некоторые P-полный проблем), где он используется для «искусственного» уменьшения времени выполнения или требований к пространству для задачи. Например, проблема целочисленная факторизация подозревается, что для времени выполнения требуется больше, чем полиномиальная функция длины ввода, если ввод задан в двоичный, но для этого требуется только линейная среда выполнения, если входные данные представлены в унарном формате.[12][13][постоянная мертвая ссылка ] Однако это может ввести в заблуждение. Использование унарного ввода медленнее для любого заданного числа, но не быстрее; различие состоит в том, что двоичный (или более крупный) ввод пропорционален основанию 2 (или большему основанию) логарифму числа, в то время как одинарный ввод пропорционален самому числу. Поэтому, хотя время выполнения и требования к пространству в унарном языке выглядят лучше как функция размера ввода, это не является более эффективным решением.[14]
В теория сложности вычислений, унарная нумерация используется для различения сильно NP-полный проблемы от проблем, которые НП-полный но не сильно NP-полный. Задача, в которой входные данные включают некоторые числовые параметры, является строго NP-полной, если она остается NP-полной, даже если размер входных данных искусственно увеличивается путем представления параметров в унарном формате. Для такой задачи существуют жесткие примеры, для которых все значения параметров не более чем полиномиально велики.[15]
Приложения
Унарная нумерация используется как часть некоторых алгоритмов сжатия данных, таких как Кодирование Голомба.[16] Это также является основой для Аксиомы Пеано для формализации арифметики в математическая логика.[17]Форма унарной записи, называемая Церковная кодировка используется для представления чисел внутри лямбда-исчисление.[18]
Смотрите также
использованная литература
- ^ Ходжес, Эндрю (2009), Один к девяти: внутренняя жизнь чисел, Якорь Канада, стр. 14, ISBN 9780385672665.
- ^ Дэвис, Мартин; Сигал, Рон; Вейкер, Элейн Дж. (1994), Вычислимость, сложность и языки: основы теоретической информатики, Компьютерные науки и научные вычисления (2-е изд.), Academic Press, стр. 117, ISBN 9780122063824.
- ^ Хекст, январь (1990), Структуры программирования: машины и программы, Структуры программирования, 1, Прентис Холл, стр. 33, ISBN 9780724809400.
- ^ Вудрафф, Чарльз Э. (1909), «Эволюция современных цифр из древних меток», Американский математический ежемесячный журнал, 16 (8–9): 125–33, Дои:10.2307/2970818, JSTOR 2970818.
- ^ Се, Хуэй-Куанг (1981), "Китайский счетный знак", Американский статистик, 35 (3): 174, Дои:10.2307/2683999
- ^ Лунде, Кен; Миура, Дайсуке (27 января 2016 г.), «Предложение о кодировании пяти идеографических меток подсчета», Консорциум Unicode (PDF), Предложение L2 / 16-046
- ^ Сазонов Владимир Ю. (1995), «О возможных числах», Логическая и вычислительная сложность (Индианаполис, Индиана, 1994), Конспект лекций по вычисл. Наук, 960, Springer, Берлин, стр.30–51, Дои:10.1007/3-540-60178-3_78, ISBN 978-3-540-60178-4, Г-Н 1449655. См., В частности, стр. 48.
- ^ Блакселл, Дэвид (1978), «Связывание записей путем сопоставления битовых шаблонов», в Хогбене, Дэвид; Файф, Деннис В. (ред.), Компьютерные науки и статистика - десятый ежегодный симпозиум по интерфейсу, Специальное издание NBS, 503, Министерство торговли США / Национальное бюро стандартов, стр. 146–156..
- ^ Хопкрофт, Джон Э.; Ульман, Джеффри Д. (1979), Введение в теорию автоматов, языки и вычисления, Эддисон Уэсли, Пример 7.7, стр. 158–159, ISBN 978-0-201-02988-8.
- ^ Дьюдни, А.К. (1989), Новый омнибус Тьюринга: шестьдесят шесть экскурсий по информатике, Computer Science Press, стр. 209, ISBN 9780805071665.
- ^ Ренделл, Пол (2015), «5.3 Более крупный пример TM: унарное умножение», Машина Тьюринга Универсальность Игры Жизни, Возникновение, сложность и вычисление, 18, Springer, стр. 83–86, ISBN 9783319198422.
- ^ Арора, Санджив; Варак, Вооз (2007), «Вычислительная модель - и почему это не имеет значения» (PDF), Вычислительная сложность: современный подход (Проект редакции января 2007 г.), Cambridge University Press, §17, стр. 32–33, получено 10 мая, 2017.
- ^ Файгенбаум, Жанна (Осень 2012 г.), CPSC 468/568 HW1 Набор растворов (PDF), Факультет компьютерных наук, Йельский университет, получено 2014-10-21.
- ^ Мур, Кристофер; Мертенс, Стефан (2011), Природа вычислений, Oxford University Press, стр. 29, ISBN 9780199233212.
- ^ Гарей, М.; Джонсон, Д.С. (1978), "'Сильные результаты "NP-полноты: мотивация, примеры и выводы", Журнал ACM, 25 (3): 499–508, Дои:10.1145/322077.322090, Г-Н 0478747.
- ^ Голомб, С. (1966), "Кодировки длин серий", IEEE Transactions по теории информации, ИТ-12 (3): 399–401, Дои:10.1109 / TIT.1966.1053907.
- ^ Маго, Николя; Берто, Ив (2002), "Изменение структур данных в теории типов: исследование натуральных чисел", Типы доказательств и программ (Дарем, 2000), Конспект лекций по вычисл. Наук, 2277, Springer, Берлин, стр. 181–196, Дои:10.1007/3-540-45842-5_12, ISBN 978-3-540-43287-6, Г-Н 2044538.
- ^ Янсен, Ян Мартин (2013), «Программирование в λ-исчислении: от Черча к Скотту и обратно», Красота функционального кода: очерки, посвященные Ринусу Пласмейеру по случаю его 61-летия, Конспект лекций по информатике, 8106, Springer-Verlag, стр. 168–180, Дои:10.1007/978-3-642-40355-2_12, ISBN 978-3-642-40354-5.