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

Частотный анализ текста (символьный) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Объясните как работают данные исходники http://www.cyberforum.ru/cpp-beginners/thread168461.html
плиииз объясните мне работы исходников 1 #include <stdio.h> int x; int y; int main() { int n, i, j, u, v, count; scanf("%i", &n); for (i=0; i<n; i++) { scanf("%i%i", &u, &v);
C++ Поиск анаграмм во входном файле Условие. В заданном алфавите слов найти все анаграммы. Входные данные. Есть файл "input.txt" в нем список слов. Выходные данные. Вывести в "out.txt" те слова к который будут найдены анаграммы из исходного алфавита. У меня сейчас основная проблема состоит в чтении этого списка слов. т.к. не известно их кол-во да и длины тоже. http://www.cyberforum.ru/cpp-beginners/thread168457.html
Из Sin в Cos С++ C++
Здраствуйте, мне нужно написать програму которая за рядами Тейлора выводит косинус . Проблема заключаеться в том ,что если програма добавляет елементы сумы Тейлора то (как у меня было в разных интерпретациях цыкла) то после 30 елемента или 70 выдает -1,#IND , а значения аргумента будут вводится от 100. Порывшись на американский сайтах нашел програму которая почти идеально решает задачу для...
Warning C4700: использована неинициализированная локальная переменная "matrix" C++
тогда еще 1 вопрос: при попытке реализовать чтение из файла в виде функции: #include <fstream> #include <iostream> #include <tchar.h> #include <math.h> #include <stdio.h> #include <iomanip>
C++ Метасимвол. http://www.cyberforum.ru/cpp-beginners/thread168445.html
Задание Входной текст хранится в файле и состоит из слов, разделенных пробилами. Ввести из клавиатуры шаблон с метасимволами (метасимвол задается в конкретном варианте). Во входном тексте найти слова (цепочки) за заданной маской. Сформировать исходный файл, превратив входной текст определенным в конкретном варианте способом. Метасимволы в шаблоне могут повторяться, но они все для конкретного...
C++ Возращение результата функции в виде указателя на объект есть функция My_Class* preprocessing(const My_Class* obj) { My_Class* Result = new My_Class(); ... return Result; } внутри неё создается указатель на локальный объект, проводятся действия и он возращается как результат функции. Читал в статье то, что так делать нежелательно. подробнее

Показать сообщение отдельно
tymrfik
2 / 2 / 0
Регистрация: 27.12.2010
Сообщений: 89
18.06.2012, 10:32     Частотный анализ текста (символьный)
Помогите пожалуйста сделать дешифровку с помощью частотной таблицы. Для того же текста, что и шифруется.
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <locale.h>
#include <cctype>
#include <clocale>
 
using namespace std;
 
char al[32] ={'Г*','ГЎ','Гў','ГЈ','Г¤','ГҐ','Г¦','Г§','ГЁ','Г©','ГЄ','Г«','Г¬','Г*','Г®','ГЇ','Г°','Г±','ГІ','Гі','Гґ','Гµ','Г¶','Г·','Гё','Г№','Гє','Г»','Гј','ГЅ','Гѕ','Гї'};
int main(int argc, char *argv[])
{
    setlocale(LC_CTYPE, "Russian_Russia.1251");
    int i, m;
    char *mes;
    mes = new char[m];
    char *c;
    c = new char[m];
   // setlocale(0,"RUS");
    ifstream file ("mess.txt");
    i=0;
     while (!file.eof())
    {
         file>> mes[i];
         cout<<mes[i];
         i++;
    }
    cout<<endl;
    int n=strlen(mes);
    cout<<"êîë-ГўГ® ГўГ±ГҐГµ ñèìâîëîì, âêëþ÷Г*Гї Г§Г*Г*ГЄГЁ ïðåïèГ*Г*Г*ГЁГї="<< n <<endl;
    int u[32]; 
    double e[32];
    int rr=0;
         int prev=' ';
         for (int i = 0; i<n; i++)
   {
      if (prev == ' ' && mes[i] != ' ')
      {         
         mes[i] = tolower(mes[i]);         
      } 
   cout<<mes[i];}
   cout<<endl;
   for(int i=0;i<n;i++){  
      c[i]=mes[i];
      cout<<c[i];} 
    for(int k=0;k<32;k++){ u[k]=0;}
     for(int k=0;k<32;k++){ 
         for(i=0;i<n;i++){
         if (al[k]==mes[i])
           u[k]=u[k]+1; // Г±Г·ГЁГІГ*ГҐГ¬ ñêîëüêî Г°Г*Г§ âñòðå÷Г*ГѕГІГ±Гї ГЄГ*æäГ*Гї ГЎГіГЄГўГ* Г*ëôГ*ГўГЁГІГ*
             }
            //cout<<u[k]<<endl;
              }   
      for(int k=0;k<32;k++){ rr=rr+u[k];}
      cout<<"êîë-ГўГ® ГЎГіГЄГў Гў ГІГҐГЄГ±ГІГҐ"<<rr<<endl; 
      //Г—Г*ñòîòГ*ГіГѕ ГІГ*áëèöó ïîñòðîèì.
  for(int k=0;k<32;k++)
  { e[k]=(double)u[k]/rr;
    cout<<e[k]<<endl;
    }
//ГґГіГ*êöèÿ øèôðîâêè ïðîñòîé Г§Г*ìåГ*îé.
char aj[32] ={'Г¬','Г*','Г©','ГЎ','Г»','Г«','ГЄ','Г°','ГЇ','Г®','ГІ','Гі','Г±','Гґ','ГЅ','Гј','Гµ','ГҐ','ГЈ','Г¤','ГЁ','Гў','Г¦','Гї','Г·','Г¶','Гѕ','Гє','Г§','Гё','Г*','Г№'};  // Г*Г*Гё
  for(int i=0;i<n;i++){ 
      c[i]=mes[i];}   
          for(i=0;i<n;i++){
          for(int k=0;k<32;k++){
         if (mes[i]==al[k])
           c[i]=aj[k];}
           }
 for(int i=0;i<n;i++){  
         cout<<c[i];}                                                                                                                                        
  cout<<endl;  
  int q[32],p[32];
  double f[32];
    for(int k=0;k<32;k++){ q[k]=0;}
     for(int k=0;k<32;k++){ 
         for(i=0;i<n;i++){
         if (aj[k]==c[i])
           q[k]=q[k]+1; // Г±Г·ГЁГІГ*ГҐГ¬ ñêîëüêî Г°Г*Г§ âñòðå÷Г*ГѕГІГ±Гї ГЄГ*æäГ*Гї ГЎГіГЄГўГ* Г*ëôГ*ГўГЁГІГ*
             }
            //cout<<u[k]<<endl;
              }
        //Г—Г*ñòîòГ*ГіГѕ ГІГ*áëèöó ïîñòðîèì.
  for(int k=0;k<32;k++)
  { f[k]=(double)q[k]/rr;
    cout<<f[k]<<endl;
    }   
    //ÑðГ*ГўГ*ГЁГўГ*ГҐГ¬ Г·Г*ñòîòû
  for(int k=0;k<32;k++){
  for(int i=0;i<32;i++){
   if (e[k]==f[i])
    //cout<< e[k]<<"="<<f[i];
     p[k]=i;}
     } 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Видоизменить : где сравниваем частоты, что нужно дописать, чтобы получилась расшифровка.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru