В этом параграфе мы будем рассматривать только представление целых чисел.

5.1 Факториальная система счисления

Как уже говорилось, базисом факториальной системы счисления являются числа: 1!, 2!, 3!, …, n!,…

Напомним определение факториала:

0!=1; 1!=1; 2!=1*2; 3!=1*2*3; 4!=1*2*3*4; …., т.е. n!=1*2*3*…*n.

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

На нижней проволоке, отведенной для единиц младшего разряда, вес которых равен 1, всего 2 косточки. На следующей проволоке - 3 косточки, вес которых 2 единицы каждая. На третьей проволоке 4 косточки, вес каждой 2*3. На n-ой проволоке (n+1) косточек. Вес каждой 1*2*3*4*…(n-1)=(n-1)! . Вес единиц от разряда к разряду растет, но неравномерно. Это приводит к представлению числа в следующем виде:

Слева – запись числа в факториальной системе счисления ( об этом говорит индекс ф справа внизу числа).Эта формула перевода из факториальной системы счисления в десятичную. Обратите внимание, что нумерация разрядов идёт не с нуля, как в р-ичных системах, а с единицы.

На цифры в записи числа накладывается следующее ограничение:

т.к.

Т.е. при 1! могут стоять только цифры 0 или 1; при 2! – только 0, 1, 2 и т. д.

Алгоритм перевода из десятичной системы счисления в факториальную аналогичен переводу из десятичной в p-ичную путем деления. Отличие в том, что в первый раз число делим на 2, первое частное на 3, второе частное на 4 и т.д.

 

Пример 1. Перевести число из факториальной системы счисления в десятичную. Напишем над цифрами номера разрядов. Номер разряда n соответствует базису n!.

 

Пример 2. Перевести число 499 из десятичной системы счисления в факториальную.

Теперь выписываем остатки в обратном порядке, начиная с последнего частного:

40301ф=(проверим)=4*5!+0*4!+3*3!+0*2!+1*1!=499.

С числами такой системы счисления можно проводить арифметические операции, которые незначительно отличаются от десятичной арифметики. В этой системе счисления можно также представлять рациональные числа.

5.2 Фибоначчиева система счисления

Базисом Фибоначчиевой системы счисления являются числа Фибоначчи:

1, 2, 3, 5, 8, 13, 21, 34… т.е. каждое следующее число равно сумме двух предыдущих. Алфавитом этой системы счисления являются цифры 0 и 1. В записи числа в этой системе счисления не могут стоять две единицы подряд (т.к. для чисел Фибоначчи bk+1=bk+bk-1).

 

Пример 3. Требуется перевести число 100100101фиб в десятичную систему счисления

Выпишем и пронумеруем несколько первых элементов базиса:


Теперь напишем номера разрядов над числом:

9 8 7 6 5 4 3 2 1

1 0 0 1 0 0 1 0 1фиб=1*55+0*35+0*21+1*13+0*8+0*5+1*3+0*3+1*1=7210

Т.е. фактически, если в разряде стоит единица, то соответствующий элемент базиса с этим номером присутствует в сумме, в противном случае – отсутствует.

 

Пример 4. Может ли комбинация 10011001 быть записью некоторого числа в фибоначчиевой системе счисления? Попытаемся перевести число в десятичную систему счисления (отсутствующие слагаемые не будем писать):

По определению чисел Фибоначчи, два соседних элемента базис в сумме дают следующий элемент. Т.е. 8+5=13:

= 34 +13 +1=10100001фиб

Следовательно, первая запись числа не верна, две единицы подряд идти не могут.

Для перевода из десятичной системы счисления в фибоначчиеву можно использовать алгоритм, подобный алгоритму компьютерного перевода из десятичной в двоичную систему счисления.

 

Пример 5. Перевести в фибоначчиеву система счисления число 7810.

Т.е. 78= 55+21+2= 1*55+0*34 +1*21+0*13+0*8+0*5+0*3+1*2+0*1=101000010фиб

  78

- 55

  23

- 21

    2

-   2

    0

Системы, аналогичные фибоначиевой, применяются при кодировании, они имеют интересные особенности, которые до сих пор изучаются.

5.3 Троичная уравновешенная система счисления

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

Рассмотрим следующую задачу: имеется набор гирь в 1, 3, 9 и 27 кг. Для того чтобы взвесить предмет весом 1 кг следует на одну часу весов положить сам предмет, а на другую – гирю в 1кг. Предмет весом в 2 кг можно взвесить следующим образом: на пустую чашку весов поместили 3 кг, а на чашку с грузом – 1 кг. Записи о взвешивании можно делать следующим образом:

 

  Гиря 27 Гиря 9 Гиря 3 Гиря 1
1кг 0 0 0 1
2кг 0 0 1 -1
3кг 0 0 1 0
4кг 0 0 1 1
5кг 0 1 -1 -1

 

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

Ряд взвешиваний можно продолжить. Результат любого взвешивания выражается числом, записанным в системе счисления с основанием p=3 и цифрами 1, 0, -1, где “-1” означает “минус единица”.

Можно привести и примеры чисел, которые начинаются с “-1”:

 

–1 1 –1 0 13= –1*81+1*27 –1*9+0*3 +1*1= –6210

 

Можно заметить, что число, начинающееся с “-1”, – отрицательное; начинающееся с “1” – положительное. Это очень важная особенность: для обозначения отрицательной величины к числу не требуется присоединять дополнительный знак, следовательно, при выполнении арифметических операций не требуется анализировать знаки операндов. Эта особенность очень привлекательна при конструировании ЭВМ.

В Советском Союзе в 1958 году была построена экспериментальная модель ЭВМ, арифметика которой базировалась на троичной уравновешенной системе счисления.  В 1962-1965 г. было выпущено более 50 промышленных экземпляров ЭВМ «Сетунь». Она была далека от совершенства, но значительно дешевле машин её класса и превосходила их по быстродействию. О перспективности подобных машин говорит следующая  цитата: «Экспериментальный образец машины "Сетунь", построенный в 1957 - 1958 гг., находился в эксплуатации 15 лет, причем из 4 тыс. использованных в нем пороговых элементов типа быстродействующих магнитных усилителей с питанием импульсами тока были заменены вследствие отказов только 3 элемента (все 3 на первом году эксплуатации): 2 из-за пробоя диодов типа Д1, по-видимому, обладавших дефектами изготовления, и 1 из-за нарушения изоляции между обмотками импульсного трансформатора. Машина устойчиво работала при значительной нестабильности напряжения питающей электросети и в достаточно широком диапазоне температур окружающей среды (от +15 до +30° С). Серийные экземпляры машин "Сетунь" успешно эксплуатировались в различных климатических зонах как с холодным, так и с жарким, а также резко континентальным климатом (например, в Ашхабаде, Душанбе, Махачкале, Иркутске, Якутске, Одессе), причем без какого-либо сервисного обслуживания и практически без запасных частей. Едва ли это может свидетельствовать о плохой надежности аппаратуры.»

Вопросы и задачи для самоконтроля

  1. Перевести числа 3021; 10321 из факториальной системы счисления в десятичную.
  2. Перевести число 499 из десятичной системы счисления в факториальную.
  3. Перевести из фибоначчиевой системы счисления в десятичную.
  4. 1001001; 101010.

  5. Перевести из 10-ой системы счисления в фибоначчиеву:
  6. 66; 127;

  7. Почему при записи числа в фиббоначчиевой системе счисления нет двух подряд идущих единиц?
  8. Перевести из троичной уравновешенной в десятичную систему счисления
  9. -1 0 1 1 0; 1 1 1 1.