|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.12.2011, 22:13 | #1 |
Регистрация: 26.10.2011
Сообщений: 5
|
Метод Хаффмана Паскаль
Задание: написать программу которая считывает текст с файла, выводит вероятности появления каждого из символов в тексте, и рассчитывает среднее кол-во бит на символ(сумма произведений вероятностей на длину кода). Ниже текст прогграммы которая выводит вероятности и считает длину текста, НЕ ЗНАЮ КАК РЕАЛИЗОВАТЬ ДАЛЬШЕ, помогите кто в этом разбирается, пожалуйста
Program lab2; var b: char; f: text; s: char; l: string; k: array [0..255] of integer; i: integer; const Sum: Longint = 0; begin Write('file name: '); readln (l); assign (f,l); Reset (f); while not EOF(f) do begin read(f,s); inc (sum,1); k[ord(s)]:=k[ord(s)]+1; end; for i:= 0 to 255 do if k[i]>0 then writeln(k[i],'/', sum); {writeln ('obem = ', sum) ;} close(f); readln; end. |
22.12.2011, 22:22 | #2 | |
Форумчанин
Регистрация: 16.09.2011
Сообщений: 114
|
Цитата:
|
|
22.12.2011, 22:26 | #3 |
Регистрация: 26.10.2011
Сообщений: 5
|
|
22.12.2011, 22:33 | #4 |
Форумчанин
Регистрация: 16.09.2011
Сообщений: 114
|
Ну так у тебя же написано, что среднее кол-во бит на символ - это сумма произведений вероятностей на длину кода. Допустим у тебя k[0] - вероятность появления нулевого символа, k[1] - первого, k[n] - n-го символа. Длина текста я так понял Sum. Тогда, судя по тому, что ты написала, среднее кол-во бит на символ равно k[0]*Sum + k[1]*Sum +...+k[n]*Sum что равно Sum*(k[0] + k[1] +...+ k[n]).
|
22.12.2011, 22:39 | #5 | |
Made In USSR!
Старожил
Регистрация: 01.09.2010
Сообщений: 3,657
|
Цитата:
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой" Последний раз редактировалось Mad_Cat; 22.12.2011 в 22:41. |
|
22.12.2011, 22:41 | #6 | |
Delphi Warrior
Старожил
Регистрация: 15.08.2008
Сообщений: 2,502
|
Цитата:
помоему это будет равно Sum тк (k[0] + k[1] +...+ k[n]) сумма вероятностей и равна 1 + умножить на sum получится sum Или я что-то путаю?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++ ya.flex-freelance@yandex.ru Icq - 636-954-303 |
|
22.12.2011, 22:41 | #7 | |
Регистрация: 26.10.2011
Сообщений: 5
|
Цитата:
|
|
22.12.2011, 22:43 | #8 |
Форумчанин
Регистрация: 16.09.2011
Сообщений: 114
|
Hacker19_90, ты прав. Mad_Cat, прав Hacker19_90
|
22.12.2011, 22:45 | #9 |
Регистрация: 26.10.2011
Сообщений: 5
|
|
22.12.2011, 22:49 | #10 |
Delphi Warrior
Старожил
Регистрация: 15.08.2008
Сообщений: 2,502
|
чёт я запутался ТС
Давайте сначала и так есть текст в котором мы должны определить вероятность появления символа! это не вопрос! Но потом сумма произведений вероятностей на длину кода длину какого кода? кода чего?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++ ya.flex-freelance@yandex.ru Icq - 636-954-303 |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Метод итераций. Паскаль. | Heming | Помощь студентам | 6 | 22.12.2011 22:10 |
Задача Коммивояжера. Метод Монте-Карло и метод приращений. [Паскаль] | U9110 | Помощь студентам | 4 | 06.04.2011 09:48 |
метод Хаффмана. | 0479 | Помощь студентам | 2 | 01.11.2010 09:46 |
Паскаль. Метод касатальных. | voffka-blogger | Паскаль, Turbo Pascal, PascalABC.NET | 13 | 13.04.2010 17:30 |