Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Книги / Книга Проектирование ВПОВС (часть 2)

.pdf
Скачиваний:
88
Добавлен:
01.06.2015
Размер:
4.62 Mб
Скачать

Например, если исходные операнды и соответственно диаграммы рассчитаны исходя из разрядности 8 бит + 2, то данные, имеющие разрядность свыше 8 бит,

представляются как набор нескольких формально независимых операндов.

Например, если

x

.10 1 0 1 10 1

1 0010 1 0110 1 0 1

,

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

x

.10 1 0 1 10 1

x

 

. 1 0010 1

01

x .10

 

0

 

000

 

2

1

1

.

1

 

 

 

 

3

 

 

 

 

Соответственно

операции над

этими

 

операндами выполняются

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

Операция алгебраического суммирования.

Пусть заданны два операнда размерностью 3 группы по 8 бит каждый.

Тогда для выполнения операции необходимо выделить три группы сумматоров.

Каждая группа сумматоров обрабатывает свой набор данных. Так как в двоично-избыточном коде в каждом такте суммируется только два одноимённых разряда каждого из слагаемых, то для суммирования отдельной группы достаточно иметь один комбинационный сумматор.

Для выполнения всей операции необходимо иметь для рассматриваемого примера три комбинационных сумматора. Таким образом,

сложения двух чисел x и y протекает следующим образом (рис. 3.35).

Суммирование всех групп осуществляется одновременно. При этом переносы из старших разрядов ближайшей группы используются для коррекции младших разрядов следующей старшей группы.

В качестве примера рассмотрим суммирования трёх групп размерностью

4 бита:

231

x

1

+

 

 

x

2

+

 

 

x

+

 

 

 

 

 

 

 

 

 

 

-

 

 

 

-

 

 

3

-

 

 

 

 

 

 

 

 

 

 

 

y

1

+

 

 

y

2

+

 

 

y

+

мл

 

 

 

 

 

 

-

 

 

-

 

3

-

 

 

 

 

 

 

 

 

 

 

 

 

С

0

 

 

 

С

0

 

 

С

 

 

 

 

 

 

 

 

 

 

0

 

 

S

 

 

 

S

 

 

S

 

 

 

Перенос в младш.

Сл. разряд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

разряд старш. разряда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Коррекция

 

 

Коррекция

 

 

 

 

 

 

 

 

младших

 

 

 

младших

 

 

 

 

 

 

 

 

разрядов

 

 

 

разрядов

 

 

 

 

 

 

 

 

Старшие

Текущие

 

 

 

 

 

 

 

 

 

разряды

разряды

 

 

 

 

 

 

 

 

 

Рег. 1

 

 

Рег. 2

 

Рег. 3

Последовательное число

Рис. 3.35.

Рассмотрим процесс суммирования на примере суммирования двух 10-

битовых слагаемых, разбив их на два поля по пять бит.

 

0

1

2

3

4

5

x1

0

1

0

-1

0

0

y1

0

0

-1

1

-1

0

0

0

 

 

 

 

 

0

0

1

 

 

 

 

0

0

1

 

 

 

 

 

0

-1

1

 

 

 

 

0

0

1

 

 

 

 

 

0

0

0

 

 

 

 

1

-1

0

 

 

 

 

 

0

-1

1

 

 

 

 

-1

-1

1

 

 

 

 

 

0

0

0

232

-1

0

 

1

2

3

4

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

0

 

-1

0

1

-1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y1

0

 

-1

1

1

-1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

-1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

Младшие разряды 00

 

 

0

1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0

1

 

 

 

 

 

 

 

 

 

 

 

Результат S1 = .0 1 -1 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

0

1

 

 

 

 

 

 

 

 

 

 

 

S2 = .0 0 -1 -1

 

 

 

 

 

 

 

 

 

 

 

 

 

1

-1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S1 = .1 0 -1 0

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

-1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S .01 1 0000 1 1 10 1

 

 

 

 

 

 

0

-1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-1

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Проверка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-1

0

1

 

2

3

4

5

6

 

7

8

 

 

9

 

 

 

10

11

 

 

 

 

 

 

 

 

 

0

 

1

 

0

-1

0

1

0

 

1

-1 -1 0

1

 

 

 

 

 

 

 

 

 

 

0

 

0

 

-1 1

-1 1

0

 

-1 -1 -1 1

1

 

 

 

 

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-1 разряд

 

0

 

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

-1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 разряд

 

0

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 разряд

 

 

 

1

 

-1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

-1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 разряд

 

 

 

 

 

 

 

-1

 

-1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

-1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3 разряд

 

 

 

 

 

 

 

 

 

0

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

4 разряд

 

 

 

 

 

 

 

 

 

 

 

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

0

 

 

 

 

 

 

 

 

 

 

5 разряд

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

-1

0

 

 

 

 

 

 

 

 

6 разряд

 

 

 

 

 

 

 

 

 

 

 

 

 

0

-1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

-1

 

0

 

 

 

 

 

7 разряд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-1

-1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

0

 

 

 

1

 

8 разряд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-1

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

-1

0

9 разряд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

-1

10 разряд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

-1

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

11 разряд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-1

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

233

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4. ВЫЧИСЛЕНИЕ ЭЛЕМЕНТАРНЫХ ФУНКЦИЙ С АРГУМЕНТАМИ,

ПРЕДСТАВЛЕННЫМИ ПОЛЯМИ

При выполнении основных процедур с переменной разрядностью размерность данных меняется от шага к шагу. Для сохранения на каждом этапе высокой производительности при приемлемом объёме оборудования широко используемая двоичная система не обеспечивает требования либо по времени,

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

разрядность которых меняется в достаточно широком диапазоне, будем определять как поля.

Основные трудности численного определения элементарных функций и других операций с аргументами, представленных полями, является переменная точность вычислений, связанная с изменением формата данных в зависимости от этапа алгоритма. Таким образом, в специализированных системах высокой точности использование стандартных программ, предназначенных для вычисления функций с фиксированным форматом данных (обычно n = 64 бита),

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

так как в случае увеличения разрядности в процессе выполнения отдельных операций точность вычислений возрастает, что ведёт к увеличению размерности полинома. И как следствие, для каждого случая требуется свой набор коэффициентов полинома. Использование же одного набора коэффициентов, ориентированного на максимальную точность, приводит к увеличению числа малопродуктивных операций. В силу указанных причин в работе рассмотрены методы, позволяющие изменять разрядность представления данных (полей) в процессе вычислений.

234

Как указывалось выше, под полем в данном случае и далее подразумевается аргумент, разрядность которого не фиксирована и превышает стандартные значения разрядностей, определяемых стандартом для ЭВМ

(например, 64 бита), и может изменяться в процессе реализации операций в общем случае неограниченно. Впервые работа с полями организовывалась в вычислительных машинах ЕС-1030 и ЕС-1060, где число бит представления данных не ограничивалось. Однако использование двоичной позиционной системы требовало длительного времени выполнения операций с полями, что ограничивало возможности её применения.

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

Основные трудности численного определения элементарных функций с аргументом, представленных полями, является переменная точность вычислений, связанная с изменением формата данных в зависимости от задачи.

Таким образом, в специализированных вычислительных системах используются как стандартные программы для фиксированных форматов данных (обычно n = 64 бита), так и программы вычисления функций с аргументом, заданных полями.

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

235

4.1.Вычисление значений функций разложением в ряд

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

Рассмотрим методы, основанные на разложении функций в ряды.

 

Пусть задано выражение

 

y = f (x)

(4.1)

Требуется найти значение y в некоторой известной точке х = а, где а

фиксированная величина, заданная полем L(N) с числом групп N.

 

Вторым методом, позволяющим проводить вычисление

функций с

аргументом представленным полем, является разложение в степенной ряд (ряд Тейлора или Макларена) [2]. Ряд Макларена имеет вид

f(x) = f(0) + f’(0)∙x +

f " 0

 

 

 

f

P

0

 

 

 

 

 

 

 

 

 

 

 

 

 

x

2

...

 

 

 

x

P

...

2!

 

 

P!

 

 

 

 

 

 

 

 

(4.2)

Как известно из [1], ошибка вычисления функции f(x) определяется как

разность

 

P

f K x

 

K

 

E0 (x)

f (x)

 

x

,

k

 

 

k 0

 

 

 

 

 

 

 

 

которая может быть оценена по остаточному члену полинома, так как 0 < < 1

и | x | < 1, то

n

(x)

1

,

что позволяет получить предварительную оценку

 

R

( p 1)!

 

 

 

 

 

 

числа членов полинома

r

n

 

 

1

 

, где r – основание системы счисления.

p 1 !

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

P

 

 

 

 

1

P

 

 

Откуда:

n ln r ln

 

 

 

 

 

 

 

ln(k 1)

, и

 

 

ln(k 1) n

.

 

 

 

 

 

 

( p 1)!

 

 

 

 

 

 

 

 

 

 

 

 

 

K 1

 

 

 

 

ln r K 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P

 

 

 

Для двоичной системы счисления

n 1,5 ln(k 1) .

 

K 1

Например, если n = 128, то p 43. Ясно, что данная оценка, как правило,

является завышенной. Для организации вычислительного процесса используем метод Горнера. В этом случае имеем [1]

236

 

f

P

(0)

 

f

p 1

 

f

p 2

 

 

x

 

 

f (x)

 

 

 

 

0

x

 

0

x ...

 

 

p!

 

( p 1)!

 

( p 2)!

 

 

 

 

 

 

 

 

 

 

 

 

Вычисление начинаем со старшей скобки, тогда

 

 

 

P

 

 

1

 

f

 

(0)

 

 

 

 

 

 

 

x 1 .

( p 1)!

 

P

 

 

 

 

 

f '(0)

 

x

 

 

 

 

 

 

f

(0)

.

(4.3)

(4.4)

Для исключения деления представим P в виде произведения простых чисел. В табл. 4.1 представлены простые числа и их обратная величина.

Таким образом, для вычисления выражения (4.4) величина P

представляется как произведение простых чисел

l P pK

K 1

, где pк – простое

число. Тогда умножение выполняется следующим образом:

x

1

 

 

x

 

p

 

 

 

1

 

 

 

 

p

 

 

 

 

1

 

1

 

...

 

 

p2

 

 

 

 

1

p

n

 

  

.

(4.5)

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

Пример. Пусть х = 0.01011011 и необходимо найти

x

1 p1

, где p1 = 7.

Для этого умножаем на период, что равносильно сдвигу на три разряда.

x

1

p

 

0.0001011011

.

0.0000001011011

Далее опять сдвигаем результат на три разряда и складываем 0.0001011011000

0.0001100110011

0.0000000001011011

Затем ёще раз осуществляем сдвиг 0.0001100110011000

0.0001100111110011

И так до получения необходимой точности. Затем полученный результат умножается на 1/p2 , 1/p3 и т.д. до получения искомой величины.

237

Таблица 4.1

K

1/К

1/К

 

 

 

 

(десятичное представление)

(двоичное представление)

 

 

 

 

 

 

 

2

0,5 (0)

0.1(0)

 

 

 

 

 

 

 

 

 

3

0.(3)

0.(01)

 

 

 

 

 

 

 

 

 

5

0.2(0)

0.(0011)

 

 

 

 

 

 

 

 

 

7

0.(142957)

0.(001)

 

 

 

 

 

 

 

 

 

11

0.(09)

0.(000111)

 

 

 

 

 

 

 

 

13

0.(076923)

0.(00010010 10)

 

 

 

 

 

 

 

17

0.(0583235294176470)

0.(00000111 1)

 

 

 

 

 

 

 

19

0.(052631578473684210)

0.(00001110 0101)

 

 

 

 

 

 

 

23

0.04347826086956521738(9)

0.(00001010 01)

 

 

 

 

 

 

 

29

0.(0310)

0.(00001000 11001011)

 

 

 

 

 

 

 

 

31

0.0322(5806451612)

0.(0001001)

 

 

 

 

 

 

37

0.(027)

0.(01101110 10110011 11100100 01010011)

 

 

 

 

41

0.(024390)

0.(00000110 00011010 0111)

 

 

 

 

 

 

43

0.(0232581395348837)

0.(00000101 1111)

 

 

 

 

 

 

 

 

47

0.()

0.000001010

11100100

1100010

(00001010

 

 

1100100 1100010)

 

 

 

 

 

53

(0.01886792452830)

0.00000100 1101 (01001000 01110011

 

 

11101100 10101101 11100011 0000)

 

 

 

 

57

(0.01753859649122807)

0.(00001000 11111010 00111110 111)

 

 

 

 

 

 

4.1.1. Вычисление значений показательной функции

Пусть задана функция y = ex, где х – аргумент, представленный полем, в

полулогарифмической форме, т.е.

x x 2N 2m ,

(4.6)

где N – порядок, определяющий количество сдвигов на число разрядов групп, а m – порядок сдвига на число незначащих разрядов внутри старшей группы.

238

Следует отметить, что если N – положительное число, то число групп результата экспоненциально возрастает. Действительно, при N = 1 число групп при n = 16 (число разрядов в группе) возрастает до 16. При N = 2 – до 256 и т.д.

В связи с этим введем ограничение. Если N достигает максимально-

разрешённого значения P, то это считается переполнением, и вычисления прекращаются. Величина Р устанавливается исходя из возможностей аппаратуры. Вторым фактором, устанавливающим ограничение на величину N,

является необходимость представления величины e с требуемой точностью.

Определим погрешность вычисления экспоненты. Для простоты изложения положим m = 0, тогда х представляется следующим образом:

x

...

 

...... ... ,

...

 

...... ......

...

 

 

 

N группа

 

 

(L N) группа

 

 

 

 

 

Рис. 4.1

Разобьем х на две части – целую и дробную,

y e

xy

e

XДД

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

Максимальная

погрешность

образуется

x

 

 

2

n N

 

2

( L N ) n

.

 

max

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Откуда y exy

e 2 ( L N 0 n .

 

т.е.

x x

y

x

 

YP

при xMAX,

тогда

тогда

 

 

 

 

 

y

x

e

2

n N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Величина

 

может быть найдена как произведение

 

 

 

 

 

 

T

 

 

 

 

где

Ki K

2

, K

 

e,

i = 0, 1, …, p – nN, (1).

 

 

 

 

 

 

 

 

 

 

i 1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, если l найдена с погрешностью , то

 

 

 

 

 

 

 

 

y

 

 

e

 

nN

e

n N

2

 

 

e

n N

1

,

 

 

 

 

 

 

 

2

 

nN

2

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

y

 

2

nN

e

2

n N

1

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Полагая, что > 2, получим y

 

22n N 1 nN .

 

 

 

 

 

 

y x Kp,

(4.7)

(4.8)

Откуда следует, что общая длина дробной части при условии, что погрешность не превзойдет значения младшего разряда поля должна быть равна – Lдр = Nn + Rn, где R – число групп дробной части.

239

Длина целой части равна LЦел = Nn, а общая длина поля L = 2N + R –

групп. Общая длина в разрядах равна L = (2N + R) n.

В настоящее время величина е определена c приблизительно 310

десятичных знаков (n 1023 двоичных разрядов или поле длиной L = 64

группы). Поле указанной длины можно считать предельной при построении систем моделирования. Если N 0, то для вычисления используется непосредственно формула разложения

где

1

2

 

 

 

2

 

,

 

 

8

 

 

 

Rn

 

k!

 

 

 

 

 

 

 

e

x

 

2

4 N K

 

1

2

x

R n ,

x

2

 

2!

Rn

 

 

x

K

...

 

k!

 

 

 

16Nk

,

k!

 

 

 

 

 

 

,

k

R

,

N

 

 

k

 

Rn

.

k!

nN

 

 

(4.9)

(4.10)

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

воспользуемся формулой оценки погрешности [7]:

откуда

2

 

 

 

8

N

 

q

K 1

 

 

k! k

 

 

 

q

K 1

R

 

 

k! k

 

 

, где 0 < q < 1.

,

(4.11)

Путем несложных преобразований q всегда можно привести к интервалу

0 < |q| 1/2.

Действительно, если х лежит в интервале ½ 1, то полагая, что

x = 1 – (1 – x), получим

ex = e ey,

где y = – (1 – x).

Таким образом, имеем

2-8N 2-(K 1)

k! k ,

Логарифмируя окончательно, получим

240