Professional Documents
Culture Documents
Simulacin
Alumno:
Blanco Beltrn Daniela Guadalupe
Act. 3 - Practica 2:
Generacin de nmeros Pseudoaleatorios
INTRODUCCION
METODOS
double ri;
int a, k, g, Xn;
double m;
Xn=Integer.parseInt(txtsemilla.getText());
k=Integer.parseInt(txtK.getText());
g=Integer.parseInt(txtg.getText());
txtm.setText(Integer.toString((int)m));
txta.setText(Integer.toString(a));
try {
System.out.println("Trabajando en fichero Datos_ACM");
fw=new FileWriter("Datos_ACM.txt",false);
pw=new PrintWriter(fw); Generacin del
fichero.
pw.println("Semilla: "+Xn);
pw.println("k: "+k);
pw.println("g: "+g);
pw.println("m: "+m);
pw.println("a: "+a);
fw.close();
} catch (IOException ex) {
Logger.getLogger(Algoritmo_congruencial_multiplicativo.class.getName()).log(Le
vel.SEVERE, null, ex);
}
}
El siguiente mtodo llamado rnd debido a que en este se lleva a cabo la
generacin de los nmeros Pseudoaleatorios.
int ope;
Object [] fila=new Object[4];
DecimalFormat decimales = new DecimalFormat("0.0000");
FileWriter fw;
PrintWriter pw;
int n=4000;
double nums[]=new double[n];
try{
System.out.println("Trabajando en fichero de Variables Pseudoaleatorias\n");
fw=new FileWriter("pseudoaleatorios.txt",false);
pw=new PrintWriter(fw);
nums[i]=ri;
modelo.addRow(fila);
}
fw.close();
}catch(Exception e){
System.out.println("Error al escribir los datos");
}
Tabla.setModel(modelo);
}
Pantalla principal
Para poder llevar a cabo los dos mtodos antes mencionados se debe hacer uso
del botn Generar el cual es el que permite que todas las funciones programadas
se lleven a cabo, es decir, la obtencin de las variables m y a, as como la
impresin de la tabla y la activacin del botn Generar Pruebas, el cual da paso a
una nueva ventana en donde se muestras las pruebas de medias, varianza y chi-
cuadrada.
Botn principal
Cabe mencionar que el programa cuenta con algunos otros mtodos que
permiten llevar a cabo las pruebas estadsticas, los datos resultantes de estos
mtodos son guardados en ficheros que posteriormente son utilizados en la
ventana de pruebas estadsticas y que permiten llevar a cabo las operaciones que
se llevan a cabo.
void varianza(){
sum=0;
for (int i = 0; i < n; i++) { Es este mtodo se realiza el clculo de la
dif=nums[i]-med; varianza, haciendo uso de un ciclo for y
pt=Math.pow(dif,2); guardndolo posteriormente en el fichero.
sum+=pt;
}
Vr=sum/(n-1);
System.out.println(decimales.format(Vr));
try{
System.out.println("Trabajando en fichero de Varianza\n");
fw=new FileWriter("varianza.txt",false);
pw=new PrintWriter(fw);
pw.println(decimales.format(Vr));
fw.close();
}catch(Exception e){
System.out.println("Error al trabajar en el fichero Varianza");
}
}
En este mtodo llamado frecuencia se realiza el conteo de los nmeros
Pseudoaleatorios dentro de parmetros establecidos de 0.10, los valores
resultantes se guardan en otro fichero para su posterior uso en la prueba de chi-
cuadrada.
void frecuencia(){
int cont;
double aux1=0.00, aux2=0.10;
for (int i = 0; i < 10; i++) {
cont=0;
for (int j = 0; j < n; j++) {
if((nums[j]>aux1) && (nums[j]<aux2)){
cont++;
}
}
frec[i]=cont;
aux1+=0.10;
aux2+=0.10;
}
for (int i = 0; i < frec.length; i++) {
System.out.println(frec[i]);
}
archivofrec();
}
try{
System.out.println("Trabajando en fichero de Frecuencia\n");
fw=new FileWriter("frecuencia.txt",false);
pw=new PrintWriter(fw);
fw.close();
}catch(Exception e){
}
}
CONCLUSIN