Найти вероятность появления каждой буквы в файле - C (СИ)
Формулировка задачи:
берем 2 файла с разными текстами,ищем в каждом файле,какая вероятность появления каждой буквы
если вероятность символа в тексте А равна вероятности в тексте Б,то поменять местами их и занести в файл С.
есть слово в первом файле "карандашр"
вероятность буквы "а" = 37,5%
есть словово втором файле "порошокак"
тут вероятность буквы "о" тоже 37,5
т.е их все поменять местами и записать в файл С
"а" поменять с "о"
"к" поменять с "р"
з.ы. и еще,подскажите,как быть с погрешностью?
ведь вероятность появления символов мб 2,34% ,а друга 2,37% как сделать,чтобы они поменялись
т.е. с учетом погрешности
int xoq() { int n=0; float a[256],b[256]; file_out = fopen("output.txt", "w"); // fputc (buf,file_out); for(n='A'; n<='z'; n++){ fseek(file_out,(b[k]),SEEK_SET); if (((b[k]/p)*100)==((a[n]/p)*100)) // p - это счетчик всех символов в файле , fputc (a[n],file_out); //((a[n]/p) -вероятность появления каждого символа } fclose (file_out); }
Решение задачи: «Найти вероятность появления каждой буквы в файле»
textual
Листинг программы
#define E 0.025 if(a[i] + E > b[i] && b[i] > a[i] - E){ // значит погрешность допустимая }
Объяснение кода листинга программы
- У нас есть массив
a
и массивb
, которые, как предполагается, содержат частоты появления букв в файле. #define E 0.025
- это определение константыE
, которая представляет собой допустимую погрешность.- В условии
if(a[i] + E > b[i] && b[i] > a[i] - E)
мы проверяем, является ли разница междуa[i]
иb[i]
допустимой погрешностью. - Если это так, то мы знаем, что погрешность допустимая, и мы можем продолжить работу с этими значениями.
- Если это не так, то мы должны принять меры для обработки недопустимой погрешности.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д