Archive for the ‘Números speudoaleatorios’ Category

Prueba chi cuadrada

Martes, Mayo 20th, 2008

En la presentación adjunta se encuentra información acerca de la PRUEBA CHI CHUADRADA que es un proceso que se sigue para determinar uniformidad de un conjunto de números reales.

Clic aquí para descargar la presentación

NATALIA LUDEÑA
Simulación de Sistemas

Algoritmo lineal

Martes, Abril 15th, 2008

Esta es parte del código que genera los números pseudo aleatorios, lamento no subir todo el código puesto que no se puede adjuntar archivos.

El programa que realice contiene los algoritmos Cuadrados medios, productos medios y el algoritmo lineal.

Esta parte del código genera los numeros de el algoritmo lineal:

private void jBlinealActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBlinealActionPerformed
// TODO add your handling code here:
int x1=0, a, c, m, repeticiones, i = 1, residuo;
double x = 0.0;
repeticiones = (int)(Float.parseFloat(jTCantidad.getText()));
while (i < repeticiones){
if (i == 1){
x1 = (1+(int)(Math.random()*100));
}
a = 1+4*((int)Float.parseFloat(jTK.getText()));
m = (int)Math.pow(2,(Float.parseFloat(jTG.getText())));
residuo = ((int)(x1*a + (Float.parseFloat(jTC.getText())))%m);
x = (double)(residuo / (m-1.00));
jTAlineal.append(”( “+x1+” * “+a+” + “+((int)Float.parseFloat(jTC.getText()))+” ) mod “+m+” = “+residuo+”\tr1 = “+x+”\n”);
x1 = residuo;
i++;
}
activarLineal(0);
activar(0);
}
Y el siguiente hace el proceso de cuadrados medios:

if (banderaGlobal == 1){
i = 0;
while (i<repeticiones){
if (i == 0){
y = (int)(Math.pow(muestra,2)); //La muestra es útil en la primera corrida, luego se utiliza
}else{
y = (int)(Math.pow(y,2)); // y como en este caso
}
ayuda = y / 1000000;  //Esta y las otras 3 líneas obtienen el valor de x1
ayuda = ayuda * 1000000;
y = y - ayuda;
x1 = y / 100;
if (x1 == 0){
jTextArea1.append(x1+”El algorito se degenera\n”);
}else{
jTextArea1.append(x1+”\n”);
}
jTextArea1.append(x1+”\n”);
media = media + x1;
y = x1; //Y coge el valor de x1 para la nueva operación
valores[i]=x1;
i++;
}

Para obtener los cuatro valores de la mitad en este algoritmo se puede utlizar ls funciones to string y substring que proporciona java.

Programa realizado por Santiago Ludeña* tuve un problema con mi cuenta por lo que uso la de la compañerita, ñerita.

Algoritmo de numeros aleatorios

Martes, Abril 15th, 2008

#include

static long Rando= 0;

/* Es necesario inicializar la semilla aleatoria con un número */
void InicializaRandom(long l)
{
Rando= l;
}

/*Funci¢n que genera números aleatorios */
double Rnd()
{
Rando= (25173L * Rando + 12849L) % 65536L;
return double(Rando) / double(65536);
}

/* Programa principal */
void main()
{
int i;
InicializaRandom(100); // Iniciamos la semilla aleatoria en 100

cout << endl << “Cien números aleatorios :” <<endl;
for (i= 0; i < 100; i++)
{
cout << Rnd() << ” “;
}

cout << endl << “Cien números aleatorios entre 1 y 1000 :” <<endl;
for (i= 0; i < 100; i++)
{
cout << int(Rnd()*1000) +1 << ” “;
}
}

Números pseudoaleatorios

Lunes, Abril 14th, 2008

 CRITERIOS PARA QUE LAS SECUENCIAS DE NUMEROS PSEUDOALEATORIAS SEAN ACEPTABLES:

1. Que sean uniformemente distribuidas

2. Que sean estadísticamente independientes

3. Que sean reproducibles

4. Que sean no cíclicas o no periódicas

5. Que el método con el cual se genera sea capaz de generar números aleatorios a altas velocidades

6. Que sea capaz de ocupar el mínimo espacio en la memoria del computador

METODO DE MEDIOS CUADRADOS DE GENERAR NUMEROS ALEATORIOS