private void saveResults(String fileName) {
        for (int i = 0; i < meansOfMeans.length; i++) {
            meansOfMeans[i] += meansOfMeans[i] / ITERATION_PER_PARAMETERS;
        }

        Individual b = best.get(0);
        Individual w = worst.get(0);
        meansOfBests += b.getEvaluation();
        meansOfWorst += w.getEvaluation();
        for (int i = 1; i < ITERATION_PER_PARAMETERS; i++) {
            meansOfBests += best.get(i).getEvaluation();
            meansOfWorst += worst.get(i).getEvaluation();
            if (b.getEvaluation() > best.get(i).getEvaluation()) {
                b = best.get(i);
            }
            if (w.getEvaluation() < worst.get(i).getEvaluation()) {
                w = worst.get(i);
            }
        }
        meansOfBests = meansOfBests / ITERATION_PER_PARAMETERS;
        meansOfWorst = meansOfWorst / ITERATION_PER_PARAMETERS;

        try (FileWriter fw = new FileWriter(fileName + "-summary.csv")) {
            fw.append("Mean of best:" + meansOfBests + "\n");
            fw.append("Mean of worst:" + meansOfWorst + "\n");
            fw.append("Mean time of execution one:" + meanTime + "\n");
            fw.append("Best :" + b.toString() + "\n");
            fw.append("Worst:" + w.toString() + "\n");
            fw.flush();
            fw.close();
        } catch (IOException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }

        try (FileWriter fwMeans = new FileWriter(fileName + "-summary-means.csv")) {
            fwMeans.append("MeansInIteration\n");
            for (long meansOfMean : meansOfMeans) {
                fwMeans.append(meansOfMean + "\n");
            }
            fwMeans.flush();
            fwMeans.close();
        } catch (IOException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }