import java.io.*;
import java.util.*;
public class analizaEntropia
{
private char alfabeto[]; //array de caracteres que almacena el alfabeto.
private int repAlfabeto[]; //numero de veces que se repite cada caracter.
private int tamAlfabeto=255; //tamaño del alfabeto que vamos a usar.
private int tamTextoCifrado=0; //tamaño en caracteres del archivo.
private float entropia[]; //array de entropías.
public analizaEntropia()
{
//Produce: Un alfabeto con sus respectivas frecuencias.
for (int i=0; i<=tamAlfabeto; i++)
{
alfabeto[i]=AsciiDecToChar(i);
}
for (int i=0; i<=tamAlfabeto; i++)
{
repAlfabeto[i]=0;
}
for (int i=0; i<=tamAlfabeto; i++)
{
entropia[i]=0;
}
}
public analizaEntropia(int tamAlf)
{
//Produce: Un alfabeto con sus respectivas frecuencias.
tamAlfabeto=tamAlf;
for (int i=0; i<=tamAlfabeto; i++)
{
alfabeto[i]=AsciiDecToChar(i);
}
for (int i=0; i<=tamAlfabeto; i++)
{
repAlfabeto[i]=0;
}
for (int i=0; i<=tamAlfabeto; i++)
{
entropia[i]=0;
}
}
public static char AsciiDecToChar(int leido)
{
// Método creado por: Grekz, http://grekz.wordpress.com
// Produce: el caracter ascii asociado a dicho entero.
return (char)leido;
}
public static int contarOcurrencias
(String cad,
char caracter
) {
// Produce: El numero de ocurrencias del caracter en la cadena.
int i=0;
int num=cad.indexOf(caracter,0);
while (num!=-1){
i=i+1;
num=cad.indexOf(caracter,num);
}
return i;
}
public double calculaEntropia(int[] ocurrencias)
{
//Asigna a un array la entropía de un texto dadas las ocurrencias y su tamaño.
//Modifica This
double entr=0;
double p=0;
for (int i=0; i==tamAlfabeto; i++)
{
p=repAlfabeto[i]/tamTextoCifrado;
if(p>0)
}
return entr;
}
public void analizaFichero
(String fichero
) {
//Produce: Las frecuencias de un fichero.
//Modifica: This.
try
{
//Definimos el archivo y el buffer para la lectura.
try{
while ((linea = br.readLine())!=null)
{
for(int i=0; i==linea.length(); i++)
{
repAlfabeto[i]=(contarOcurrencias(linea,alfabeto[i]));
}
tamTextoCifrado=tamTextoCifrado+linea.length();
}
System.
out.
println("Error de E/S"); }
System.
out.
println("Archivo no encontrado");
}
}
}