Witam wszystkich,
Niedawno natrafiłem na sposób, który pozwala na rozszyfrowanie, z jakim językiem mamy do czynienia. Wystarczy znać procentowy rozkład liter dużego tekstu, by móc przypuścić, z czym mamy do czynienia. Więcej pod tym linkiem: https://en.wikipedia.org/wiki/Letter_frequency
Zająłem się tym i na razie program zlicza litery tylko z tablicy ascii, co "trochę" zawęża zabawę. Czy da radę rozszerzyć zliczanie poszczególnych liter na cały zestaw znaków z unicode? Wszystkie pomysły są ważne, poniżej wstawiam mój kod:
<!DOCTYPE HTML>
<html lang="pl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Stronka</title>
</head>
<body>
<script type="text/javascript" >
var suma = 0; // zliczanie liter
var tekst=prompt("Napisz/skopiuj tekst w celu przeanalizowania liczby poszczególnych liter)").toLowerCase(); // pytanie z prośbą o przekazanioe tekstu.
var tablica_ascii= ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t","u", "v", "w", "x", "y", "z"]//tablica z ascii a- 97 z - 122
var tablica_wynik= new Array(26) // tablica zliczająca wszystkie napotkane litery
for(i=0 ; i<tablica_wynik.length ; i++){
tablica_wynik[i]=0; // zerowanie tablicy
}
for(var i=0 ; i<tekst.length; i++){
for(var j=0 ; j<tablica_ascii.length ; j++ ){
if( tablica_ascii[j] == tekst.charAt(i) ){
tablica_wynik[j]++;
suma++;
}
}
}
//Opublikowanie wyniku:
document.write("Oto liczba poszczególnych liter w tekście: <br>" );
for(var i=0 ; i<tablica_wynik.length ; i++){
document.write(tablica_ascii[i],": ", tablica_wynik[i],". Procentowy udział litery ", tablica_ascii[i]," w tekście: ", (Math.round( (tablica_wynik[i]/suma)*1000 )/10),"%." ,"<br>" );
}
document.write(" Wszystkich liter w tekscie jest: ",suma,".");
</script>
</body>
</html>