Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

MAKE THIS CODE MORE EFFICIENT #include #include #include #define MAX_FILE_NAME_LENGTH 15 #define MAX_BIGRAMS 676 void calculateBigramFrequencies(FILE *file, double bigramFrequencies[MAX_BIGRAMS]); double calculateDissimilarity(double freq1[MAX_BIGRAMS], double freq2[MAX_BIGRAMS]); int

MAKE THIS CODE MORE EFFICIENT

#include #include #include

#define MAX_FILE_NAME_LENGTH 15 #define MAX_BIGRAMS 676

void calculateBigramFrequencies(FILE *file, double bigramFrequencies[MAX_BIGRAMS]); double calculateDissimilarity(double freq1[MAX_BIGRAMS], double freq2[MAX_BIGRAMS]);

int main() { char languageFiles[6][MAX_FILE_NAME_LENGTH] = { "language_1.txt", "language_2.txt", "language_3.txt", "language_4.txt", "language_5.txt", "language_x.txt" }; double bigramFrequencies[6][MAX_BIGRAMS]; for (int i = 0; i < 6; ++i) { FILE *file = fopen(languageFiles[i], "r"); if (file == NULL) { perror("Error opening file"); return 1; } calculateBigramFrequencies(file, bigramFrequencies[i]); fclose(file); } for (int i = 0; i < 5; ++i) { double dissimilarityScore = calculateDissimilarity(bigramFrequencies[5], bigramFrequencies[i]); printf("dissimilarity(language_x, language_%d) = %f ", i + 1, dissimilarityScore); } return 0; }

void calculateBigramFrequencies(FILE *file, double bigramFrequencies[MAX_BIGRAMS]) { for (int i = 0; i < MAX_BIGRAMS; ++i) { bigramFrequencies[i] = 0.0; }

int prev = fgetc(file); int curr; while ((curr = fgetc(file)) != EOF) { int bigramIndex = (prev - 'a') * 26 + (curr - 'a'); bigramFrequencies[bigramIndex]++; prev = curr; }

int totalBigrams = 0; for (int i = 0; i < MAX_BIGRAMS; ++i) { totalBigrams += bigramFrequencies[i]; }

for (int i = 0; i < MAX_BIGRAMS; ++i) { bigramFrequencies[i] /= totalBigrams; } } double calculateDissimilarity(double freq1[MAX_BIGRAMS], double freq2[MAX_BIGRAMS]) { double dissimilarity = 0.0;

for (int i = 0; i < MAX_BIGRAMS; ++i) { dissimilarity += fabs(freq1[i] - freq2[i]); }

return dissimilarity; }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions