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

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

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

Показать сообщение отдельно
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;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru