Foros del Web » Programación para mayores de 30 ;) » Programación General »

teoría del random !!!

Estas en el tema de teoría del random !!! en el foro de Programación General en Foros del Web. Hola, mi pregunta es muy teórica y de NERD, pero bue... como hace la función random ??? Usa números primos ? Ve la hora de ...
  #1 (permalink)  
Antiguo 05/04/2005, 10:28
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
teoría del random !!!

Hola, mi pregunta es muy teórica y de NERD, pero bue...

como hace la función random ???

Usa números primos ?

Ve la hora de reloj ?

Si alguien sabe por favor díganme...

Gracias
__________________
Esteban Quintana
  #2 (permalink)  
Antiguo 05/04/2005, 10:53
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
¿Te referis a algun lenguaje en particular?

Esto es lo que hace practicamente la implementacion de VC++ (srand y rand):

Código:
void srand(unsigned int mySeed)
{
  seed = mySeed;
}

int rand()
{
  return(((seed = seed * 214013L + 2531011L) >> 16) & 0x7fff);
}
Se le puede pasar la hora del reloj como seed tranquilamente.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO

Última edición por Eternal Idol; 05/04/2005 a las 11:09
  #3 (permalink)  
Antiguo 05/04/2005, 11:28
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
jaja, y

return(((seed = seed * 214013L + 2531011L) >> 16) & 0x7fff);

que corno es ???

jaja, bueno, gracias por tu respuesta, ya tengo una idea más certera, pero todavía no lo entiendo como quiero entenderlo...

Gracias y saludos
__________________
Esteban Quintana
  #4 (permalink)  
Antiguo 05/04/2005, 11:34
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
En sintesis es una ecuacion, por eso siempre que uses el mismo seed los valores generados van a ser (en cadena) los mismos.

>> 16 es equivalente a / 66666, lo que hace es empujar los bytes 16 veces a la derecha (shr de asm).

& 0x7FFF es una operacion de bits de tipo AND.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 05/04/2005, 12:14
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
ha, listo, ya entiendo la lógica, gracias !!!!!!!

Saludos
__________________
Esteban Quintana
  #6 (permalink)  
Antiguo 05/04/2005, 12:20
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
De nadas
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 11/04/2005, 16:31
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
>>16 no es /666666 en realidad es /2^16=2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2

El & lo que hace es descartar bits....
Y pues creo que te deja 15 bits( si el numero es mas grande a lo que aguante 15 bits(32*1024) entonces descarta los bits de la izquierda....


Saludos
  #8 (permalink)  
Antiguo 12/04/2005, 00:41
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Si, es 65536 en realidad, tambien hace cinco dias de la pregunta y no cambia la teoria.

El & es el operador de and y punto, es una comparacion de bits entre el primero y el segundo operando, si los dos son 1 el bit queda a uno, de cualquier otra manera (siendo cualquiera de los dos 0) el bit queda a 0.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #9 (permalink)  
Antiguo 12/04/2005, 13:10
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
si, pero si te das cuenta par obtener el 5 bit de un numero le applicas un 10000. NO????
  #10 (permalink)  
Antiguo 12/04/2005, 13:17
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Si, le aplicas 16 (0x10), que es 10000 en binario.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #11 (permalink)  
Antiguo 12/04/2005, 13:18
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
Si, exacto, en pocas palabras los 2 tenemos razon, es and y sirve para descartar. Punto.
Saludos
  #12 (permalink)  
Antiguo 12/04/2005, 13:20
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Si, tanto como que un auto sirve para matar gente y es un vehiculo.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #13 (permalink)  
Antiguo 12/04/2005, 13:22
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
La verdad verdad es que asi funciona, muchas veces casi me mato con esos operadores logicos. JAJAJA
Mejor comprate una bicicleta, no siempre te mata.....
saludos
  #14 (permalink)  
Antiguo 12/04/2005, 13:24
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Y ademas sirve para hacer ejercicio!
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #15 (permalink)  
Antiguo 12/04/2005, 13:25
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
Si, pero luego los vhiculos atropellan a los de la bicicleta , muy muy peligroso no????
  #16 (permalink)  
Antiguo 12/04/2005, 15:50
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Gracias gente por las respuestas...Veo que saben bastante del tema...

Saludos
PD: Amigos, este foro es para compartir conocimientos, intenten no discutir ni agredirce entre ustedes !!! Sean constructivos con sus respuestas !!!
__________________
Esteban Quintana
  #17 (permalink)  
Antiguo 12/04/2005, 19:01
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
Si monoswim, como que se nos subio el fuego en un dia a los dos.....
No es para traer a la FBI, pero espero que no vuelva a pasar.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:31.