/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package auxiliar;

/**
 *
 * @author Marília
 */
public class Estatistica {


    public static double[] calculoMediaDesvioPadrao(double[] valores)
	{
		double[] mediaDesvio=new double[2];
		double media=0;
		double somatorio=0;
		for(int i=0;i<valores.length;i++){
			media+=valores[i];
		}
		media=media/valores.length;
		for(int i=0;i<valores.length;i++){
			somatorio+=Math.pow((valores[i]-media),2);
		}
		mediaDesvio[0]=media;
		mediaDesvio[1]=Math.sqrt(somatorio/valores.length);


		return mediaDesvio;
	}

    public static String getValoresSimulacoes(String caminhoArquivo){
        StringBuffer stringBuffer = new StringBuffer();
        Arquivo arquivo = new Arquivo();
        String[] arraySimulacoes;
        String[] arrayTentativas = new String [10];
        double[] arrayTentativasDouble = new double [10];
        String infoSimulacoes = arquivo.abrirArquivo(caminhoArquivo);
		arraySimulacoes = infoSimulacoes.split("----------------------------");
		for(int i = 1; i < arraySimulacoes.length; i++)
		{
            String[] arrayTemp1 = arraySimulacoes[i].split("ciclos\n\n");
			String[] arrayTemp2 = arrayTemp1[1].split("\n");
			for(int j = 1, a = 0; j < arrayTemp2.length && a<10; j=j+3, a++){
                arrayTentativas[a] = arrayTemp2[j];
                arrayTentativasDouble[a]= Double.parseDouble(arrayTentativas[a].split(": ")[1]);
                stringBuffer.append("simulação ");
                stringBuffer.append(i);
                stringBuffer.append(" - arrayTentativas[");
                stringBuffer.append(a);
                stringBuffer.append("]: ");
                stringBuffer.append(arrayTentativas[a]);
                stringBuffer.append("\n");
            }
            double[] mediaDesvio = calculoMediaDesvioPadrao(arrayTentativasDouble);

            stringBuffer.append("simulação ");
            stringBuffer.append(i);
            stringBuffer.append(" - Média_Simulações:\t");
            stringBuffer.append(mediaDesvio[0]);
            stringBuffer.append("\nsimulação ");
            stringBuffer.append(i);
            stringBuffer.append(" - Desvio_Padrão: \t");
            stringBuffer.append(mediaDesvio[1]);
            stringBuffer.append("\n\n");

			//gBestFitness[i] = Double.parseDouble(arrayInfoCiclos[n].split(": ")[1]);


		}
        return stringBuffer.toString();
    }

     public static void main(String[] args) {
         //System.out.println("simulação "+i+" - arrayTentativas["+a+"]: "+ arrayTentativasDouble[a]);
          System.out.println(getValoresSimulacoes("resultadosSimulacoes.txt"));
     }
}
