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

Энтропия источника информации - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проблемы с подключением FLTK к VS 2012 http://www.cyberforum.ru/cpp-beginners/thread920996.html
Учусь по книге Страуструпа "Принципы и практика использования C++". Дошел до 12 главы, где начинается изучение графики. Для того, чтобы проект запустился, мне необходимо было включить в него...
C++ большой тупик Я столкнулся с небольшой проблемой! Вообщем мы с ребятами работали над игровым сервером IV:MP. Там нечего сложного но возникла проблема не нашей сферы. Мелочь просто. Мы брали за основу уже готовый... http://www.cyberforum.ru/cpp-beginners/thread920994.html
C++ Задача с Тимуса 1446
Всем привет. Я несколько дней бился над задачей с Тимуса. Вот ссыль: вырезано Задача не сложная - просто ввести строки, например, в 4 вектора и вывести их. Но я столкнулся с проблемой в считывании. Я...
C++ Задача из Лафоре
Для разъяснения действия наших доморощенных указателей мы смоделируем память компьютера с помощью массивов. Так как доступ к массивам всем понятен, то вы сможете увидеть, что реально происходит,...
C++ Графическое приложение http://www.cyberforum.ru/cpp-beginners/thread920921.html
Здравствуйте форумчане, возник вопрос на который хотелось бы получить вашу помощь, выполняю работу где требуется написать графическое приложение. Само приложение написано и работа почти доделана, но...
C++ Работа с типами данных в массиве Всем доброго времени суток , помогите выяснить одну вещь. Есть у меня массив типа char. Вот к примеру {1f-21df } Каким образом можно преобразовать тип элементов массива в int, чтобы в нем можно... подробнее

Показать сообщение отдельно
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
13.07.2013, 03:16
Определим p_i как отношение количества вхождений буквы к количеству букв.
Кликните здесь для просмотра всего текста
код
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
#include<algorithm>
#include<fstream>
#include<iostream>
#include<cctype>
#include<map>
#include<cmath>
using namespace std;
int main(){
    map<const char,int> ch_count;
    int n = 0; //количество обработанных символов.
    
    //считываем буквы, приводим к строчным, считаем количество вхождений для каждой.
    ifstream f ( "istinf.txt");
    char temp = f.get();
    while(f.good()){
        if ( temp == ' ' or isalpha(temp)){
            if ( isupper(temp) )
                temp = tolower(temp);
        ch_count[temp] = ch_count[temp]+1;
        }
        n++;
        temp = f.get();
    }
    f.close();
    
    //считаем энтропию
    double entropy = 0;
    for_each(ch_count.begin(),ch_count.end(),
        [&entropy,&n](const pair<char,int> x){
            entropy=( 
                float(x.second) / n 
            * 
                log( float(n) / x.second )
            );
        }
        );
 
    cout<<"entropy:"<<entropy<<endl;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru