Java - problema arreglo en java

   
Vista:

problema arreglo en java

Publicado por franciso (3 intervenciones) el 14/01/2016 12:54:26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
public class Mochila {
 
	private static final int  pesoMaximo;
	private static final int items[][] = {{2,3},{3,4},{4,5},{5,6}};
	static{
	 pesoMaximo=5;
 
 
	}
 
 
private static int mochilaDinamica(int p[][], int capacidad){
	int n=p.length;
	int i;
	int w;
	int beneficio[][]=new int[n+1][capacidad+1];
 
 
    /*relleno la primera fila y primera columna del arreglo beneficio con ceros */
	for (i=0;i<=capacidad;i++){
		beneficio[0][i]= 0;
	}
	for(w=1;w<=n;w++){
		beneficio[w][0]=0;
 
	}
 
 
	for(i=1;i<=n;i++){
		for(w=1;w<=capacidad;w++){
			if(w<p[i-1][i-1]){
				beneficio[i][w]=beneficio[i-1][w];
			}
			else{
				if(beneficio[i-1][w]>=beneficio[i-1][w-p[i-1][i-1]]+p[i-1][w]){
					beneficio[i][w]=beneficio[i-1][w];
				}
				else{
					beneficio[i][w]=beneficio[i-1][w-p[i-1][i-1]]+p[i-1][w];
				}
			}}
		}return beneficio[n][capacidad];
	}
 
	public static void main(String[] args){
 
		System.out.println("version dinamica:"+ mochilaDinamica(items, pesoMaximo));
	}
}


al ejecutar este codigo me lanza este error :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at mochila.Mochila.mochilaDinamica(Mochila.java:38)
at mochila.Mochila.main(Mochila.java:56)
nose que es si me pueden ayudar seria de gran ayuda gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

problema arreglo en java

Publicado por arck (145 intervenciones) el 14/01/2016 15:09:20
mirate la linea esta:

if(beneficio[i-1][w]>=beneficio[i-1][w-p[i-1][i-1]]+p[i-1][w]){

exactamente el: beneficio[i-1][w-p[i-1][i-1]]+p[i-1][w]

en el acceso a p[i-1][w] la W tiene un valor de 2 y el maximo es 1 ya que el array de tamaño 2 solo puede tomar valores 0 o 1

Usa el modo debug, es muy útil. y si usas Eclipse hay una vista que es Expressions que te sera de ayuda.

Es donde te da el fallo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

problema arreglo en java

Publicado por franciso (3 intervenciones) el 14/01/2016 18:43:52
ya me di cuenta el problema es con el numero de columnas de mi matriz p[][] muchas gracias intentare corregirlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problema arreglo en java

Publicado por juanki (95 intervenciones) el 14/01/2016 15:10:19
Hola

¿Quieres decir que no sabes qué error tienes? Te lo está diciendo claro, y hasta la línea en la que ocurre:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at mochila.Mochila.mochilaDinamica(Mochila.java:38)

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar