1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7

# конспект · шаг 7 из 7

Конспект: необычные основания

выжимка - её можно унести в заметки

Понятия

Основание задаёт веса позиций: цифра в позиции i умножается на b^i. Битовая строка без договорённости о весах ещё не задаёт числовое значение.

Основание −2 использует цифры 0 и 1 с весами 1,−2,4,−8,…. Отдельного знакового бита нет. Ноль записывается как 0.

Гауссово целое - пара целых (a,b), записанная как a+bi, где i²=−1. Основание β=−1+i позволяет представить такие пары конечными строками 0 и 1.

Евклидово деление в этой главе: n=dq+r, 0≤r<|d|, d≠0. Это не всегда деление с усечением частного к нулю.

Что унести

Основание −2:
    кодирование: r=n%2; n=(n-r)//(-2)
    остатки собираются от младшего к старшему
    чтение слева направо: value=-2*value+digit

Ширина w, A - единицы во всех нечётных позициях:
    минимум = -A, максимум = 2^w-1-A
    value = (word XOR A)-A
    word = (value+A) XOR A, только внутри диапазона

Сложение:
    s = цифра первого + цифра второго + входящий перенос
    digit = s%2
    carry = (s-digit)//(-2)
    продолжать, пока не закончились и слова, и перенос

Примеры: 11 обозначает −1, 110 обозначает 2, 1101 обозначает −3. Четыре бита дают диапазон от −10 до 5; шесть - от −42 до 21. Сдвиг влево умножает значение на −2. Изменение знака можно получить сложением исходного слова с его сдвинутой копией.

Основание β=−1+i:
    r = (a+b)%2
    новые координаты одновременно:
        a' = (b-a+r)//2
        b' = (r-a-b)//2
    чтение цифры d: (a,b) <- (-a-b+d, a-b)

Запись 1100 означает 2, 11 означает i, 1011 означает 2+3i. В основании −1−i та же строка даёт комплексно сопряжённое значение. Для других оснований меняются и допустимые остатки, и свойства конечности. Например, при основании 2i и цифрах 0,1,2,3 число i записывается как 10.2.

Группы по два бита основания −2 дают основание 4 и цифры −2,−1,0,1. Пары цифр основания −1+i дают основание −2i и цифры 0,1,−1+i,i. При основании 1+i конечность уже не гарантирована: для i остаток 1, а частное снова i. Формальная запись с бесконечным хвостом слева требует иной договорённости и не является обычным сходящимся комплексным рядом.

Цена представления

При N различных значениях, целочисленном основании b≥2 и цене разряда k·b:

число разрядов = ceil(log_b N)
точная цена = k*b*ceil(log_b N)
сглаженная цена = k*ln(N)*b/ln(b)

Сглаженный минимум при вещественном b=e; среди целых оснований этой модели выигрывает 3. Округление числа разрядов меняет сравнение для конкретного N. Для N=16 цены оснований 2,3,4 при k=1 равны 8,9,8; для N=81 - 14,12,16. Реальное устройство может иметь другую зависимость цены от числа состояний.

Ловушки джокера

Складывать упаковки обычным a+b. При новом основании это другие числовые значения. Пример 11+1 должен дать 0, а обычное двоичное сложение дало бы 100.

Выбросить отрицательный перенос. В основании −2 он необходим и может потребовать ещё двух разрядов после конца входа. Ширину результата проверяют отдельно.

Обновить координаты по очереди. Формулы частного используют обе старые координаты; последовательное присваивание без сохранения значений портит комплексное число.

Непрерывный минимум выдать за устройство. Число состояний целое; для диапазона 0…M состояний M+1. Округления и фактическая стоимость оборудования обязательны.

Комментарии

Пока нет комментариев. Будь первым!

Оставить комментарий

Комментарий появится после проверки. Email не публикуется. Войти, чтобы не вводить имя каждый раз.