Reinhard: MIC (mutual index of coincidence)

Beitrag lesen

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