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

Формула Шеннона "Энтропия, бит" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Простое уравнение (очень нужно побыстрее) http://www.cyberforum.ru/cpp-beginners/thread1531185.html
Петя нашёл в книге простое математическое уравнение: a*x + b*y = 1. Его интересуют только целочисленные решения этого уравнения и только те, в которых x ≥ 0. Помогите Пете их найти. Входные...
C++ Генерация рандомных чисел от 1 до 6 Простая программка, заготовка к игре морской бой на 6 клеток, суть в том, что человек вводит число от одного до 6, программа говорит, попал он или нет Не могу настроить рандом, что выдавал число от... http://www.cyberforum.ru/cpp-beginners/thread1531176.html
Определить количество плиток, чтобы замостить пол C++
Для того, чтобы замостить пол прямоугольной комнаты размерами AxB мастера решили приобрести квадратные плитки со стороной C. В магазине оказалось, что по сниженной цене можно приобрести поврежденные...
C++ Вычисления значений функций
Мне была поставлена задача - вычислить значение функции. F(x)=\begin{cases} -x^2-9 & \text{ , } x \ge 13 \\ -\frac{1}{x^2+9} & \text{ , } x \lt 13 \end{cases} Программа вроде правильно...
C++ Не запускается проект в NetBeans http://www.cyberforum.ru/cpp-beginners/thread1531108.html
Был поставлен cygwin и указан путь до bin, после чего NetBeans сам указал компилятор и т.д. (рисунок) проект даже скомпилировался, но не запускается, говорит: "java.lang.NullPointerException...
C++ Скомпилировать программу, добавив в нее код библиотеки Добрый день! Подскажите пожалуйста, как компилятором g++ скомпилировать программу добавив в нее код библиотеки. Ситуация следующая, на машине в которой пишу и запускаю код программа работает,... подробнее

Показать сообщение отдельно
nmcf
5319 / 4639 / 1551
Регистрация: 14.04.2014
Сообщений: 18,452
16.09.2015, 15:52
Функцию сам допили.
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
#include <iostream>
#include <fstream>
#include <cstdlib>
 
int main()
{
    int f[256], len;
    double p[256], h;
    unsigned char * data;
 
    std::fill(f, f + 256, 0);
 
    std::ifstream ifs("data.txt", std::ifstream::binary);
    ifs.seekg(0, ifs.end);
    len = ifs.tellg();
    ifs.seekg(0, ifs.beg);
 
    data = new unsigned char[len];
    ifs.read(reinterpret_cast<char *>(data), len);
    ifs.close();
 
    for (int i = 0; i < len; ++i) ++f[data[i]];
 
    delete[] data;
 
    h = 0;
    for (int i = 0; i < 256; ++i)
    {
        if (f[i] == 0) continue;
        p[i] = static_cast<double>(f[i]) / len;
        h += (log10(1.0 / p[i]) / log10(2.0)) * p[i];
    }
 
    std::cout << h << endl;
 
    system("pause");
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru