![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 26.01.2014
Сообщений: 2
|
![]()
Задача: Реализовать процедуру вычисления энтропии для текстового файла на английском языке. В процедуре необходимо подсчитывать частоты появления символов (прописные и заглавные буквы не отличаются, знаки препинания рассматриваются как один символ, пробел является самостоятельным символом), которые можно использовать как оценки вероятностей появления символов. Затем вычислить величину энтропии Шеннона. Точность вычисления -- 4 знака после запятой. Обязательно предусмотреть возможность ввода имени файла, для которого будет вычисляться энтропия.
Начала решать с подсчета количества символов в файле. Код:
Помогите и направьте, пожалуйста. Долго уже мучаюсь, не пойму никак( ________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка на панели форматирования с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 26.01.2014 в 22:56. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
Да, наверное надо массив частот. Лучше относительных частот. Это называется статистический ряд.
Ваша строка s - это тоже фактически массив символов, типа вариационного ряда. Ряд вариант - конкретных случайных символов. Надо написать функцию, которая по строке s вычислит статистический ряд относительных частот. Код:
Непонятно правда, как понимать многоточие в тексте, или излишнюю экспрессию, типа !!! PS Код строчной буквы и прописной отличается на $20 (32 в десятичной). Например A - $41, a - $61 Последний раз редактировалось type_Oleg; 26.01.2014 в 21:53. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,367
|
![]()
Может так?
Описываем множество символов - знаки препинания. Описываем массив с целыми элементами. Читаем строку из файла. Просматриваем строку по символьно до конца строки. Преобразуем символ в верхний регистр. Проверяем попадание символа в множество знаков препинания. Если это знак препинания, то +1 в первый элемент массива. Если это пробел, то +1 во второй элемент массива. Если это буква или цифра, то определяем ее код: Типа: <Символ> - '0' + 2 (тут надо подумать) и +1 в соответствующий элемент массива. Затем читаем и обрабатываем следующую строку и так до конца файла. Теперь у нас есть кол-во символов и массив с частотой их появления в тексте. Как-то так, ...
Как-то так, ...
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
Вот так например - расчет относительных частот. Относительная частота = частота / объем выборки. Поэтому Real, см выше.
Код:
|
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 26.01.2014
Сообщений: 2
|
![]()
Спасибо большое за участие!
Пока не смотрела. Как сделаю, напишу обязательно, как получилось) |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Используя очередь, написать процедуру или функцию,для вычисления среднего геометрического элементов типизированного файла (Паскаль | BumBum4ik | Помощь студентам | 0 | 04.01.2014 18:12 |
Для каждой введенной цифры (0–9) вывести соответствующее ей название на английском языке (0 — zero, 1 — one, 2 — two, ...) Delphi | Ирина Анатольевна | Помощь студентам | 1 | 16.05.2012 08:34 |
Нужен Mobile Developer кто может писать статьи для сайта на английском языке | KateTest | Фриланс | 0 | 22.02.2012 03:01 |
фильм на английском языке с субтитрами на русском и английском | veter_s_morya | Свободное общение | 6 | 04.05.2011 13:29 |
HELP! Необходим скрипт на VB, автоматизирующий стандартную процедуру импорта из текстового файла | Kerguru | Microsoft Office Access | 1 | 17.12.2009 20:33 |