![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 01.06.2012
Сообщений: 2
|
![]()
Помогите разобраться, как составить программу по псевдокоду
Построение оптимального кода Хаффмана (n,P) Обозначим n – количество символов исходного алфавита P – массив вероятностей, упорядоченных по убыванию C – матрица элементарных кодов L – массив длин кодовых слов Huffman (n,P) IF (n=2) C [1,1]:= 0, L [1]:= 1 C [2,1]:=1, L [2]:=1 ELSE q:= P [n-1]+P [n] j:= Up (n,q) (поиск и вставка суммы) Huffman (n-1,P) Down (n,j) (достраивание кодов) FI Функция Up (n,q) находит в массиве P место, куда вставить число q, и вставляет его, сдвигая вниз остальные элементы. DO (i=n-1, n-2,…,2) IF (P [i-1]≤q) P [i]:=P [i-1] ELSE j:=i OD FI OD P [j]:= q Процедура Down (n,j) формирует кодовые слова. S:= C [j,*] (запоминание j-той строки матрицы элем. кодов в массив S) L:= L[j] DO (i=j,…,n-2) C [i,*]:= C[i+1,*] (сдвиг вверх строк матрицы С) L [i]:=L [i+1] OD C [n-1,*]:= S, C [n,*]:= S (восстановление префикса кодовых слов из м-ва S) C [n-1,L+1]:=0 C [n,L+1]:=1 L [n-1]:=L+1 L [n]:=L+1 |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужна помощь в составлении программы в Паскале | yamag | Помощь студентам | 3 | 17.10.2013 19:09 |
Нужна помощь в составлении программы | Stary | Помощь студентам | 5 | 09.11.2009 09:04 |
Требуется помощь в составлении блок-схемы к программам | Lacrim | Помощь студентам | 3 | 12.01.2009 21:28 |
Помощь в составлении программ (assembler) | Xopoxop | Помощь студентам | 4 | 08.12.2008 23:45 |