Hey,
ich würde mir schritt für schritt alles anzeigen lassen. zunächst einmal, ob du wirklich die richtigen substrings ausgewählt hast. substring1 wäre etwa WJPOUVP... usw.
var substrings = [];
//len == 6
for (var i = 0; i < len; i++)
substrings[i] = [];
for (var i = 0, l = str.length; i < l; i++)
substrings[i % len].push(str[i]);
positiv.
als nächstes zählst du die häufigkeiten der zeichen für jeden substring durch, also A(1)=1 usw. auch das alles anzeigen lassen und prüfen.
//Häufigkeiten des 1. Substrings
var frequencyDistribution = [];
for (var i = 0; i < 26; i++)
frequencyDistribution[i] = 0;
for (var i = 0, l = substrings[0].length; i < l; i++)
frequencyDistribution[_alp.indexOf(substrings[0][i])]++;
positiv.
$$ \displaystyle MIC (x, s_j^b) \simeq \frac{\sum\nolimits_{i=1}^n p_i r''_{i-b}}{l''} $$
(Die Formel)
dann würde ich rechnen (a*A(i)+b*B(i)+...+z*Z(i))/l(i), wobei a,b,...,z die relativen häufigkeiten der zugeh. buchstaben sind, i der jeweilige index des substrings und l(i) dessen länge.
Ich steh auf dem Schlauch.. Was heißt "zugeh."? Was berechnest du damit? Und: wo bist du gerade bei der Formel?
ohne jz das ergebnis gleich zu bewerten, würde ich dann fortfahren mit den shifts, also
(a*B(i)+b*C(i)+...+z*A(i))/l(i)
(a*C(i)+b*D(i)+...+z*B(i))/l(i) usw. berechnen.
Wie jetzt, erst „(a*A(i)+b*B(i)+...+z*Z(i))/l(i)“ und dann „(a*B(i)+b*C(i)+...+z*A(i))/l(i)“? Wie kommst du darauf? Und selbes wie oben: was berechnest du damit?
So, das $$ l'' $$ in der Formel ist jetzt die Länge des Substrings (substrings[0].length == 49), $$ p_i $$ ist die Buchstabenhäufigkeit der betreffenden Sprache (z.B. Englisch) - aber wie sieht $$ p_i $$ aus? Ist $$ p_i $$ bei A nun 8.167 oder 0.08167? - und was ist $$ r''_{i-b} $$ ? bzw. wenn $$ r'' $$ die zuvor gezählten Buchstabenhäufigkeiten des Substrings sind (Format: 2|4|0|9|3|...) was ist b?
Wäre toll wenn wir die MIC Formel mal für den 1. Substring durchgehen könnten.
Substring[0] : WJPOUVPTQVJGCAEGGVGVQQGCKVNRQVIEGPWVOCUCCEVRJJVKD
Buchstabenhäufigkeit : 1 0 5 1 3 0 6 0 1 4 2 0 0 1 2 3 4 2 0 1 2 9 2 0 0 0
|A|1 |B|0 |C|5 |D|1 |E|3 |F|0 |G|6 |H|0 |I|1 |J|4 |K|2 |L|0 |M|0 |N|1 |O|2 |P|3 |Q|4 |R|2 |S|0 |T|1 |U|2 |V|9 |W|2 |X|0 |Y|0 |Z|0
Reinhard