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

Арифметическое кодирование на С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.81
Apoka5555
1 / 1 / 0
Регистрация: 18.04.2013
Сообщений: 123
18.04.2013, 17:18     Арифметическое кодирование на С++ #1
Здравствуйте. Такая проблема: нужно реализовать алгоритм арифметического кодирования и декодирования. Кодирование у меня получилось. Но никак не могу сделать декодирование. Помогите пожалуйста. Вот мой код:
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "stdafx.h"
#include <iostream>
using namespace std;
 
/*
Алфавит {'a','e','i','o','u','!'}
Символ   Вероятность   Интервал
a           .2         [0.0; 0.2)
e           .3         [0.2; 0.5)
i           .1         [0.5; 0.6)
o           .2         [0.6; 0.8)
u           .1         [0.8; 0.9)
!           .1         [0.9; 1.0)
*/
char Alph[] = {'a','e','i','o','u','!'};
double cum_freq[] = {0.2, 0.5, 0.6, 0.8, 0.9, 1.0};
 
double low = 0.0;
double high = 1.0;
 
void encode_symbol(int symbol)
{
    double range = high - low;
    high = low + range * cum_freq[symbol];
    low = low + range * cum_freq[symbol - 1];
    cout << low <<" - "<< high << endl;
}
 
void decode_symbol()
{
    
}
 
void main()
{
    cout << low << " - "<< high << endl;
    string s = "eaii!";
    for (int i = 0; i < s.length(); i++)
    {
        for (int j = 0; j < 6; j++)
        if (s[i] == Alph[j])
        {
            cout << s[i] <<" - ";
            encode_symbol(j);
        }
    }
    
 
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2013, 17:18     Арифметическое кодирование на С++
Посмотрите здесь:

C++ шифрование и кодирование
C++ Арифметическое кодирование
C++ кодирование текста
Арифметическое кодирование C++
кодирование хаффмана C++
C++ Кодирование, C++
Кодирование по Хаффману, C++ C++
C++ Кодирование
Равномерное кодирование C++
C++ Кодирование слов
Кодирование и декодирование C++
Равномерное кодирование C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
18.04.2013, 17:57
  #2

Не по теме:

Цитата Сообщение от Apoka5555 Посмотреть сообщение
Здравствуйте. Такая проблема: нужно реализовать алгоритм арифметического кодирования и декодирования. Кодирование у меня получилось.
- я бы не был так уверен и думаю лучше было написать так : необратимо исковеркать информацию шифруемого сообщения до неузнаваемости получилось...

Apoka5555
1 / 1 / 0
Регистрация: 18.04.2013
Сообщений: 123
19.04.2013, 16:29  [ТС]     Арифметическое кодирование на С++ #3
Напишите пожалуйста алгоритм декодирования или подскажите как написать. Заранее благодарен.
Yandex
Объявления
19.04.2013, 16:29     Арифметическое кодирование на С++
Ответ Создать тему
Опции темы

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