public static void main(String[] args) {
        Integer[] states = {0, 1, 2, 3};//,3,4};
        double[] distribution = /*{0.3,0.2,0.5};//*/ {0.025, 0.025, 0.9, 0.05};//, 0.4, 0.1};
        int k = 0;
        double[] d_moyenne = new double[4];
        double[] d_moyenne_temps = new double[4];
        final int TAILLE_BOUCLE = 5;
        while (k < TAILLE_BOUCLE) {
            AlgorithmMCMC algo = AlgorithmFactory.getInstance().getAlgorithm(AlgorithmFactory.METROPOLIS_HASTING, states, distribution);

            try {
                MarkovChain mc = algo.constructChain();
                mc.computeStationaryDistributionUntilStabilityFitness(0.000001, 0.001);
                double[] stationaryDistribution = mc.getStationary_distribution();
                for (int i = 0; i < stationaryDistribution.length; i++) {
                    d_moyenne[i] += stationaryDistribution[i];
                }
                for (int i = 0; i < ((MetropolisHasting) algo).getTempsParEtat().length; i++) {
                    d_moyenne_temps[i] += ((MetropolisHasting) algo).getTempsParEtat()[i];
                }
            } catch (Exception ex) {
                System.err.println(ex);
                System.exit(1);
            }
            k++;
        }
        for (int i = 0; i < d_moyenne.length; i++) {
            d_moyenne[i] /= (double) TAILLE_BOUCLE;
            d_moyenne_temps[i] /= (double) TAILLE_BOUCLE;
        }
        System.out.println("Distrib moyenne : ");
        Myst.afficherTableau(d_moyenne);
        System.out.println("Temps par etat moyen : ");
        Myst.afficherTableau(d_moyenne_temps);
    }