ChiCuadrado !!?¿

buenas gente,como andan?¿?
Tengo un problemita con como hacer unas pruebitas de chi cuadrado,es para una materia y el compilador me esta dando el sigte error:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 5, Size: 5
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at ChiCuad.CargoMuestra(ChiCuad.java:78)
at ChiCuad.main(ChiCuad.java:100)
Java Result: 1
GENERACIÓN CORRECTA (total time: 1 second)

La pregunta del millon como puedo hacerlo de la manera correcta.....Es decir, como puedo resolver el problema del chi cuadrado, hay les va mi codigo:
import java.util.*;

public class ChiCuad {
//Cargo el Array de marcas
public static ArrayList CargoMarca(){
ArrayList marca= new ArrayList();
//int i=0;

marca.add(0);
marca.add(1);
marca.add(2);
marca.add(3);
marca.add(4);
return marca;
}

//Cargo el Array de probabilidades
public static ArrayList CargoProb(){
ArrayList prob= new ArrayList();
prob.add(0.08);
prob.add(0.17);
prob.add(0.26);
prob.add(0.35);
prob.add(0.14);
return prob;
}

//Cargo el Array de probabilidades acumuladas
public static ArrayList CargoAcum(){
ArrayList acum= new ArrayList();
acum.add(0.08);
acum.add(0.25);
acum.add(0.51);
acum.add(0.86);
acum.add(1.00);
return acum;
}

//Cargo Array de series
public static ArrayList CargoSerie(){
ArrayList serie=new ArrayList();
int i=0;

double sem= 1121;

while(i<=200){
double modu= 10000;
double pa= 37;
double r1= (pa*sem)%modu;
double alea= r1/modu;
serie.add(alea);
sem=0.0;
sem=r1;
i++;
}
return serie;
}

//Cargo el Array de muestra
public static ArrayList CargoMuestra(){
ArrayList miMuestra= new ArrayList();
ArrayList miSerie= CargoSerie();
ArrayList miAcum= CargoAcum();
ArrayList miMarca= CargoMarca();
int k=0;

while(k<=200){
for(int j=0;j<=miSerie.size();j++){
if(miSerie.get(j)<=miAcum.get(j)){
miMuestra.add(miMarca.get(j));
}
}
k++;
}
return miMuestra;

}

public static void main(String arg[]){
ArrayList fecob= new ArrayList();//Array de frecuencias observadas
ArrayList fectot= new ArrayList();//Array de frecuencia total

ArrayList marca= CargoMarca();
ArrayList prob= CargoProb();
ArrayList probAc= CargoAcum();

//Scanner texto= new Scanner(System.in);
double n= 200;
int m= 5;
ArrayList muestra= CargoMuestra();
int i=0;
//int j=0;
while(i<=n){
for(int j=0;j

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Jose Manuel

Un consejo

Hola oscar_fernandez, amigo te invito a leer y/o revisar los dos artículos mencionados aquí abajo.
Recuerda que esta es una comunidad y todos debemos de hacer lo mejor que podamos para que sea una de calidad y pueda brindar la ayuda que nos proporciona.
http://www.javamexico.org/filter/tips
http://www.javamexico.org/tema/lineamientos_de_publicacion
Saludos.

Imagen de ezamudio

RTFS

Imagen de XinefPro

Un error que encontre en tu

Un error que encontre en tu codigo se da en este fragmento :

for( int j = 0; j <= miSerie.size(); j ++ )
{
   if( miSerie.get( j ) <= miAcum.get( j ) )
   {
      miMuestra.add(miMarca.get(j));
   }
}

Mira, si n es el numero de elementos de tu arraylist, osea n = miSerie.size(), y el primer elemento tiene posicion 0
entonces por simple inspeccion te puedes dar cuenta de que el ultimo elemento de tu arraylist esta en la posicion n - 1, por
eso es que esa sentencia for da un error, porque recorre desde 0 hasta n, cuando deberia de recorrer desde 0 hasta n - 1.
Creo que solo basta con cambiar el simbolo <= por < en el for:

for( int j = 0; j < miSerie.size(); j ++ )
{
   if( miSerie.get( j ) <= miAcum.get( j ) )
   {
      miMuestra.add(miMarca.get(j));
   }
}

Re: Un error que encontre en tu

Ese era el error de hecho (al menos el de la excepción IndexOutOfBounds).