diff options
| author | Benedict <benedict@0xb8000.de> | 2016-03-19 15:15:33 +0100 |
|---|---|---|
| committer | Benedict <benedict@0xb8000.de> | 2017-02-21 13:00:25 +0100 |
| commit | fa397a6eb18274b40f35d5966e35f0fc79a2f09c (patch) | |
| tree | b772b5bb3203280a0157164b825e62831cbea890 /lib.c | |
| parent | 1013c26e20f83bc633e0a929248a5f76c67c72ff (diff) | |
added more frequent characters
Diffstat (limited to 'lib.c')
| -rw-r--r-- | lib.c | 41 |
1 files changed, 27 insertions, 14 deletions
@@ -309,9 +309,10 @@ static int frequent_histogramm_matchs(char *string, int length) int i; int hits = 0; char tmp; - int number_frequent_characters[10] = { 0, 0, 0, 0, 0, 0 ,0 ,0 ,0 ,0}; - // a e h i n o r s t u - double standard_frequencies[10] = { 8.1, 12.7, 6.0, 6.9, 6.7, 7.5, 5.9, 6.3, 9.0, 2.7 }; + int number_frequent_characters[14] = { 0, 0, 0, 0, 0, 0, 0, 0 ,0 ,0 ,0 ,0, 0, 0}; + // frequent characters: + // a c d e h i l m n o r s t u w + double standard_frequencies[14] = { 8.1, 2.7, 4.2, 12.7, 6.0, 6.9, 4.0, 2.4, 6.7, 7.5, 5.9, 6.3, 9.0, 2.7 }; // count frequent characters for(i=0;i<length;i++) { @@ -320,38 +321,50 @@ static int frequent_histogramm_matchs(char *string, int length) case 'a': number_frequent_characters[0]++; break; - case 'e': + case 'c': number_frequent_characters[1]++; break; - case 'h': + case 'd': number_frequent_characters[2]++; break; - case 'i': + case 'e': number_frequent_characters[3]++; break; - case 'n': + case 'h': number_frequent_characters[4]++; break; - case 'o': + case 'i': number_frequent_characters[5]++; break; - case 'r': + case 'l': number_frequent_characters[6]++; break; - case 's': + case 'm': number_frequent_characters[7]++; break; - case 't': + case 'n': number_frequent_characters[8]++; break; - case 'u': + case 'o': number_frequent_characters[9]++; break; + case 'r': + number_frequent_characters[10]++; + break; + case 's': + number_frequent_characters[11]++; + break; + case 't': + number_frequent_characters[12]++; + break; + case 'u': + number_frequent_characters[13]++; + break; } } - #define FREQ_AREA 0.8 + #define FREQ_AREA 0.7 // compare frequncies with standard frequencies - for(i=0;i<10;i++) { + for(i=0;i<14;i++) { double freq =(double) ((double)number_frequent_characters[i]*100/(double)length); if((((standard_frequencies[i] * (1-FREQ_AREA) < freq) )&& ((standard_frequencies[i] * (1+FREQ_AREA)) > freq))) { |
