0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 13
|
|
1 | |
Подсчет частоты алфавита14.12.2013, 16:29. Показов 3230. Ответов 23
Метки нет (Все метки)
Доброго времени суток. Как посчитать в тексте из файла частоту алфавита(сколько раз каждый символ встречается в приведенном тексте)? Я понимаю, что мы открываем 2 файла: в 1 изначальный текст, в другой записывается частота алфавита. Вот только не посимвольно же этот текст читать и суммировать. А как сделать это на массивах представляю очень образно и на практике не выходит. Помогите хотя бы с теоретической части, а практической может сама дойду. Заранее спасибо!
0
|
14.12.2013, 16:29 | |
Ответы с готовыми решениями:
23
Подсчет частоты встречаемости слов Подсчет количества символов русского алфавита в текстовом файле Вывести таблицу частоты букв использования латинского алфавита для данного текстового файла text.txt в файл f1.txt Сделать подсчет частоты встречаемости последовательности символов АБВ в текстовом файле |
14.12.2013, 16:35 | 2 | |||||
а почему бы и не посимвольно?
0
|
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 13
|
|
14.12.2013, 16:38 [ТС] | 3 |
не посимвольно, наверное потому, что если загрузить в файл приличного объема текст(ну не "Войну и мир" конечно, но тоже большое произведение), то скорее всего долга эта программа будем все эти символы считать
0
|
11 / 11 / 5
Регистрация: 27.10.2012
Сообщений: 26
|
||||||
14.12.2013, 16:52 | 4 | |||||
Я вижу это так:
создаем массив размере 25(для английского алфавита) считываем строку проходим по строке передавая каждый символ в функцию, которая в свою очередь проверяет какой это символ, и в зависимости от того какой, увеличивает значение в массиве Пример функции:
0
|
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
|
||||||
14.12.2013, 17:06 | 5 | |||||
ika11ika, можно так:
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,516
|
||||||
14.12.2013, 17:56 | 7 | |||||
объявить его беззнаковым
что ты подразумеваешь под файлом большого размера? сколько страниц ?
1
|
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
|
|
14.12.2013, 18:24 | 9 |
0
|
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 13
|
|
14.12.2013, 19:28 [ТС] | 11 |
Ну, в том плане, что в файле может оказаться текст большего размера, чем 1 страница и если будет, например, 10 страниц, то пока она сосчитает все символы...это в моем понимании(женская логика).
Не вариант, потому что мне нужны все числа и все буквы в том числе заглавные от английского и русского алфавитов. Но не это проблема, ведь, при работе с файлами все равно какой язык используется (для записи, не для вывода).
0
|
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
|
||||||
14.12.2013, 19:41 | 12 | |||||
M=10000 было написано "от балды", конечно оптимально будет цифра около 512 (+-). функция read1() читает текстовый файл размером 60 МБ за 1,2 сек, а функция read2() за 5 сек (посимвольное чтение предлагалось до моего первого поста)
0
|
14.12.2013, 19:47 | 13 |
Прочитайте, наконец, про страничную организацию памяти. И не пишите больше про "+-".
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,516
|
|
14.12.2013, 20:15 | 14 |
и что
даже 1000 страниц считает на глаз незаметно попробуй прочитать файл побайтно и блоком и если заметишь разницу то то тогда и будем говорить а это вообще времени мизер займет но можешь создать в памяти буфер размером с файл считать туда разом, и потом работать с этим буфером Добавлено через 3 минуты во первых 5 секунд это не такое большое время а во вторых 60 МБ это примерно 50 000 страниц где в реальности такие файлы? это БСЭ что ли считывать?
0
|
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
|
|
14.12.2013, 20:29 | 15 |
а оно мне надо? я примерно представляю, как этот процесс происходит, мне этого пока достаточно.
да и вообще, я привел пример с помощью чего можно читать файлы быстрее и не претендовал на идеальное решение. вы могли бы еще в первом ответе уточнить значение M, не тыкая в википедию (про нее я и сам знаю, но нет желания в этом подробно разбираться) и не писать эти бессмысленные фразы типа если о чем-то лучше знаете почему бы просто не рассказать об этом??? Добавлено через 2 минуты набрал строчку, нажал ctrl+C, зажал ctrl+V на несколько секунд и вуаля. Что вы до мелочей докапываетесь то?
0
|
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 13
|
|
14.12.2013, 20:29 [ТС] | 16 |
А есть какой-нибудь вариант записать это попроще, пусть это будет немного неразумно, с учетом, что есть более "продвинутые" и результативные способы, но попроще.
0
|
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
|
|
14.12.2013, 20:42 | 17 |
куда уж проще, 4 строчки кода всего: объявляем массив и двумя циклами читаем и обрабатываем входные данные
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,516
|
|
14.12.2013, 20:49 | 18 |
мы о реальной задаче или о "сферических конях"?
можно и пару сотен гигабайт сгенерить, а потом спрашивать как мне быстрей его прочитать чем тебе вариант Кузи Домовенка, не устраивает?
0
|
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 13
|
|
14.12.2013, 20:56 [ТС] | 19 |
Не могли бы вы мне построчный комментарий написать, чтобы я разобралась, если не сложно?)
Добавлено через 5 минут я не оспариваю варианты, я просто не могу в них разобраться, вот в чем проблема
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,516
|
||||||||||||||||||||||||||||||||||||
14.12.2013, 21:08 | 20 | |||||||||||||||||||||||||||||||||||
поехали по шагам
например считали символ 'A' его номер 65 значит увеличиваем 65 ячейку на 1 после цикла в массиве и будет лежать частота букв например чтобы узнать сколько раз встретилась буква 'B' достаточно написать
1
|
14.12.2013, 21:08 | |
14.12.2013, 21:08 | |
Помогаю со студенческими работами здесь
20
Один из способов идентификации автора литературного произведения – подсчет частоты вхождения отдельных слов Строка: Подсчет числа вхождений и частоты появления букв латинского алфавита в заданной строке. Сравнение частоты появления букв русского алфавита Построить гистограмму распределения частоты появления букв кириллического алфавита, анализируя произвольный файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |