0

ラウンドの最大コストと最小コストを見つけるために Java でプログラムを実行しています。しかし、私はすべてのラウンドを分析する必要があり、子供を返します。 andが trueの場合、再帰を実行できます。M[i][j]M[k][l]現在、再帰は機能しませんが、シミュレーションは有効です。

これを行う方法がわかりません。私のコードは次のとおりです。

import IIC1103Package.*;

public class jjj {
    public static void main(String[] args) {
        int[][] a = archivoAMatriz("Hola");
        imprimirMatriz(a);
        estimacion(3, 3, "Hola");
        int[] asa = {3,5,6,1,6,1};
        System.out.println(hallarminimo(asa));
    }
static int[][] archivoAMatriz(String input){
    ArchivoDeLectura a = new ArchivoDeLectura();
    String aux = "";
    String [] aux2;
    int filas = 0;
    int columnas = 0;

    if (a.abrir(input)) {

        aux = a.leer();
        aux2 = aux.split(",");

            filas = Integer.parseInt(aux2[0]);

            columnas = Integer.parseInt(aux2[1]);
        }
    else{
        Usuario.mensaje("Ese archivo no existe");
    }
    int[][] matriz = new int[filas][columnas];

    while (!a.EOF()) {
        for (int i = 0; i < matriz.length; i++) {
            aux = a.leer();
            aux2 = aux.split(",");
            for (int j = 0; j < matriz.length; j++) {
                matriz[i][j] = Integer.parseInt(aux2[j]); 
            }
        }
    }
    a.cerrar();
    return matriz;
    }


 static void imprimirMatriz(int[][] a){
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a[0].length; j++){
                System.out.print(a[i][j] + " ");
            }
            System.out.println();
        }
    }

    static int hallarminimo(int[] a){
        int ret = 0;
        for (int i = 0; i < a.length; i++) {
            ret = a[i];
            if (i>0) {
                if (a[i]<=a[i-1]) {
                    ret = a[i];
                }
            }
        }
        return ret;
    }

    static void estimacion(int simulaciones, int n, String output){
        int[][] a = archivoAMatriz(output);
        int aux = 0;
        int cont = 0;
        int minimo = 0;

        int[] aux2 = new int[n+1];
        for (int i = 0; i <= simulaciones; i++) {
            minimo = hallarminimo(aux2);
            if (cont>=1) {
                if (hallarminimo(aux2)<minimo) {
                    minimo=hallarminimo(aux2);
                }
            }
            for (int j = 0; j <= n; j++) {
                int k = Aleatorio.entero(0,a.length-1);
                int j2 = Aleatorio.entero(0, a.length-1);
                if (a[k][j2]>0) {
                    aux+=a[k][j2];
                    aux2[j] = a[k][j2];
                    if (j==0) {
                        cont = 1;
                    }
                }

            }
        }
        System.out.println("El costo promedio de los viajes es: " + aux/(n*simulaciones));
        System.out.println("El costo mìnimo de los viajes es: " + minimo);
    }
}
4

0 に答える 0