function alfabetAnalyse($codtxt, $alfa)
{
    global $AP, $ks_hilf;
    $alfahier = @hauf($codtxt);
    for ($t = 0; $t < sizeof($alfahier); $t++) {
        $p[] = 100 * prob($alfahier[$t], strlen($codtxt));
    }
    $alfahier = $p;
    $VX = varianz($AP[de]);
    $SX = sqrt(varianz($AP[de]));
    $VY = varianz($alfahier);
    $SY = sqrt(varianz($alfahier));
    $cov = covarianz($AP[de], $alfahier);
    $r = @abs($cov / sqrt($VX * $VY));
    for ($t = 0; $t < sizeof($alfa); $t++) {
        $ba1 .= "<img src={$ks_hilf['pfad']}/image/letter" . $t . ".gif border=0><img src={$ks_hilf['pfad']}/image/bar0.jpg width=3 border=0>";
        $ba2 .= "<img src={$ks_hilf['pfad']}/image/letter" . ($t + $rotv) % sizeof($alfa) . ".gif border=0><img src={$ks_hilf['pfad']}/image/bar0.jpg width=3 border=0>";
    }
    $lang_normalalphabet = JTEXT::_('NORMALALPHABET');
    $lang_STATISTICALDATA = JTEXT::_('STATISTICALDATA');
    $lang_VARIANCE = JTEXT::_('VARIANCE');
    $lang_DEFAULTABWEICHUNG = JTEXT::_('DEFAULTABWEICHUNG');
    $lang_CURRENTALPHABET = JTEXT::_('CURRENTALPHABET');
    $lang_SIGNS = JTEXT::_('SIGNS');
    $lang_ENTROPY = JTEXT::_('ENTROPY');
    $out .= '<table border=0><tr><td>
            <b>' . $lang_normalalphabet . '</b><br>' . $lang_STATISTICALDATA . ':<br>' . '<br>' . $lang_VARIANCE . ': ' . round($VX, 5) . '<br>' . $lang_DEFAULTABWEICHUNG . ':  ' . round($SX, 5) . '</td><td valign=middle>' . showakt($AP[de], 50, 1, 5, 3, 0) . '<center><div class=text7 >' . $ba1 . '</div></center>' . '</td></tr>' . '<tr><td>' . '<br><b>' . $lang_CURRENTALPHABET . '</b><br>' . $lang_STATISTICALDATA . ':<br>' . '<br>' . $lang_VARIANCE . ':    ' . round($VY, 5) . '<br>' . $lang_DEFAULTABWEICHUNG . ':     ' . round($SY, 5) . '<br>' . '</td><td valign=middle><br>' . showakt($alfahier, 50, 1, 5, 3, 0) . '<center><div class=text7 >' . $ba2 . '</div></center>' . '</td></tr><tr><td>' . '<br>' . $lang_SIGNS . ':    ' . strlen($codtxt) . '<br>' . $lang_ENTROPY . ':   ' . round(entropie($codtxt), 5) . '</td></tr></table>';
    return $out;
}
function entropie($text)
{
    # binärer Informationsgehalt, bezogen auf den Standardzeichensatz
    global $alfa;
    $hauf = hauf($text);
    for ($t = 0; $t < count($hauf); $t++) {
        $p = prob($hauf[$t], strlen($text));
        if ($p > 0) {
            $z = $p * log($p) / log(2);
        } else {
            $z = 0;
        }
        $ent = $ent + $z;
    }
    $ent = -$ent;
    return $ent;
}
function alfabetAnalyse($codtxt, $alfa)
{
    global $AP, $ks_hilf;
    $alfahier = @hauf($codtxt);
    for ($t = 0; $t < sizeof($alfahier); $t++) {
        $p[] = 100 * prob($alfahier[$t], strlen($codtxt));
    }
    $alfahier = $p;
    $VX = varianz($AP[de]);
    $SX = sqrt(varianz($AP[de]));
    $VY = varianz($alfahier);
    $SY = sqrt(varianz($alfahier));
    $cov = covarianz($AP[de], $alfahier);
    $r = @abs($cov / sqrt($VX * $VY));
    for ($t = 0; $t < sizeof($alfa); $t++) {
        $ba1 .= "<img src={$ks_hilf['pfad']}/image/letter" . $t . ".gif border=0><img src={$ks_hilf['pfad']}/image/bar0.jpg width=3 border=0>";
        $ba2 .= "<img src={$ks_hilf['pfad']}/image/letter" . ($t + $rotv) % sizeof($alfa) . ".gif border=0><img src={$ks_hilf['pfad']}/image/bar0.jpg width=3 border=0>";
    }
    $out .= '<table border=0><tr><td>
            <b>Normales Alfabet</b><br>Statistische Daten:<br>' . '<br>Varianz: ' . round($VX, 5) . '<br>StdAbw:  ' . round($SX, 5) . '</td><td valign=middle>' . showakt($AP[de], 50, 1, 5, 3, 0) . '<center><div class=text7 >' . $ba1 . '</div></center>' . '</td></tr>' . '<tr><td>' . '<br><b>vorliegendes Alfabet</b><br>Statistische Daten:<br>' . '<br>Varianz:    ' . round($VY, 5) . '<br>StdAbw:     ' . round($SY, 5) . '<br>' . '</td><td valign=middle><br>' . showakt($alfahier, 50, 1, 5, 3, 0) . '<center><div class=text7 >' . $ba2 . '</div></center>' . '</td></tr><tr><td>' . '<br>Zeichen:    ' . strlen($codtxt) . '<br>Entropie:   ' . round(entropie($codtxt), 5) . '<br>KI-Index:   ' . round(koinzidenzIndex($codtxt), 5) . '</td><td>' . '<br>GV-Maß1:    ' . round(gvmass($codtxt, $alfahier), 5) . '<br>GV-Maß2:    ' . round(gvmass2($codtxt, $alfahier), 5) . '</td></tr></table><div class=text10><br>Kovarianz:  ' . round($cov, 5) . '<br>KorrKoeff:  ' . round($r, 5) . '</div>';
    return $out;
}
function findmul($text)
{
    # Alfabetmultiplikator finden
    global $AP;
    global $alfa;
    $mulzahl = teilerfremde(sizeof($alfa));
    $VX = varianz($AP[de]);
    $SX = sqrt(varianz($AP[de]));
    $sp = hauf($text);
    $sps = array_sum($sp);
    for ($t = 0; $t < sizeof($sp); $t++) {
        $sp[$t] = @round($sp[$t] / $sps * 100, 2);
    }
    for ($t = 0; $t < sizeof($mulzahl); $t++) {
        for ($u = 0; $u < sizeof($sp); $u++) {
            $sp2[$u] = $sp[$mulzahl[$t] * $u % sizeof($sp)];
        }
        $VY = varianz($sp2);
        $SY = sqrt(varianz($sp2));
        $cov = covarianz($AP[de], $sp2);
        $r[$t] = @abs($cov / sqrt($VX * $VY));
    }
    $b = array_search(max($r), $r);
    return $mulzahl[$b];
}