Форум программистов, компьютерный форум CyberForum.ru

Метод Шеннона фано - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.92
KPun
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 29
17.11.2009, 20:19     Метод Шеннона фано #1
Помогите пожалуста реализовать самый простой способ этого алгоритма сжатия на С/С++

Добавлено через 14 минут
с задаными вероятностями a = 0.01 b=0.1 c=0.09 d=0.8
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2009, 20:19     Метод Шеннона фано
Посмотрите здесь:

Алгоритм сжатия методом Шеннона-Фано C++
Метод Шеннона-Фано C++
C++ перевод из PASCAL в C++ (сжатие методом Шеннона-Фано)
C++ Коды Фано, Хаффмана, Хэмминга, Шеннона, код с проверкой на четность
C++ Реализация алгоритма кодирования Шеннона-Фано
C++ Двоичный вывод (алгоритм Шеннона Фано)
Метод архивации Шеннона-Фано C++
C++ Алгоритм шеннона фано
Алгоритм Шеннона-Фано C++
Кодирование Шеннона-Фано C++
Реализовать алгоритм Шеннона-Фано C++
Метод Шеннона-Фано и контейнер Map C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KPun
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 29
17.11.2009, 22:21  [ТС]     Метод Шеннона фано #2
никто не поможет?
KPun
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 29
18.11.2009, 10:05  [ТС]     Метод Шеннона фано #3
a.Kode[i]=(int*)realloc(a.Kode[i],(k+2)*sizeof(a.Kode[i])). Что делает данное выражение?
KPun
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 29
23.11.2009, 13:02  [ТС]     Метод Шеннона фано #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
void CKripto_1Dlg::Alf_Kode(int i,int j,int k)
{
    int n=i,m=j;//сохраняем внешние границы
    a.Sum1=a.Ver[i];
    a.Sum2=a.Ver[j];
    a.Kode[i]=(int*)realloc(a.Kode[i],(k+2)*sizeof(a.Kode[i]));//под очередные символы кода
    a.Kode[j]=(int*)realloc(a.Kode[j],sizeof(a.Kode[j])*(k+2));//
    a.Kode[i][0]=k+1;
    a.Kode[j][0]=k+1;
    a.Kode[i][k+1]=1;
    a.Kode[j][k+1]=0;
    while(i<j-1)
    {
        if(a.Sum1<=a.Sum2)
        {
            a.Sum1+=a.Ver[i+1];
            a.Kode[i+1]=(int*)realloc(a.Kode[i+1],sizeof(a.Kode[i+1])*(k+2));
            a.Kode[i+1][k+1]=1;
            a.Kode[i+1][0]=k+1;
            i++;
        }
        else
        {
            a.Sum2+=a.Ver[j-1];
            a.Kode[j-1]=(int*)realloc(a.Kode[j-1],sizeof(a.Kode[j-1])*(k+2));
            a.Kode[j-1][k+1]=0;
            a.Kode[j-1][0]=k+1;
            j--;
        }
    }
    int t=k;
    if(i-n>=1)
        Alf_Kode(n,i,k+1);
    if(m-j>=1)
        Alf_Kode(j,m,t+1);
}
Помогите разобрать хотябы эту часть кода
Yandex
Объявления
23.11.2009, 13:02     Метод Шеннона фано
Ответ Создать тему
Опции темы

Текущее время: 20:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru