elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Las semillas de Random (una aclaración por favor)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Las semillas de Random (una aclaración por favor)  (Leído 18,535 veces)
Jess_Kapria


Desconectado Desconectado

Mensajes: 676


Mas chustas no : XD :


Ver Perfil
Las semillas de Random (una aclaración por favor)
« en: 31 Julio 2007, 19:57 pm »

Hola , pues un amigo me ha pasado una aplicación para que fuera acostumbrándome al uso de la clase Random y hay una cosilla que no entiendo . Os pongo akí el programilla para que entendais mejor la pregunta que quiero hacer:

Código
  1. import java.util.Random;
  2. public class aleatorio {
  3. private Random r;
  4. public aleatorio() {
  5. r=new Random();
  6. r.setSeed(1234);
  7. }
  8. public int generarAleatorio() {
  9. int n=r.nextInt(1000);
  10. return n;
  11. }
  12. }

Mi duda está en --> r.setSeed(1234); , bueno leyendo por ahí he comprendido que para que se genere un número aleatorio es recomendable utilizar y darle una longitud de semilla. Pero he leído por ahí que hay unos valores por defecto que se introducen como el 1234 , pero lo que no me ha quedado claro (y espero que nadie se ría por favor , pero llevo mucho rato buscando, y no me aclaro  :-( :-() es que quiere decir ese 1234 , es decir entre cuantos numeros aleatorios busca , entre 1234  :huh: :huh:

Vamos que no sé , la verdad que acabo de volver a retomar Java por motivos de trabajo y la verdad que estoy muy perdida  porque estoy viendo cosas que no sabía ni que existían y estoy muy acojonada.

Yo seguiré investigando , leyendo , ya me he comprado dos libros (que lastimosamente no me están sirviendo de mucho , porque sólo hablan de cosas muy básicas , como declaración de variables , estructuras de control, vamos lo típico de todos los libros que te dicen cuando empiezas con un nuevo lenguaje.

Sabeis de algún lugar donde pueda encontrar libros más extensos y que profundicen más en temas más complicados  :huh: :huh:

Ah , y que tal está La biblia de Java que es un buen tocho , es que lo ví el otro día y no sé si comprarmelo , antes quería saber vuestra opinión.

Bueno espero que alguien me pueda ayudar  ;) ;)

Saludos ,  :xD


En línea


Casidiablo
Desarrollador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.919



Ver Perfil WWW
Re: Las semillas de Random (una aclaración por favor)
« Respuesta #1 en: 1 Agosto 2007, 00:27 am »

Lo primero que es necesario que entiendas, es que con la clase Random se generan números pseudo-aleatorios, por tal motivo (y si has probado el ejemplo que te pasaron) siempre que corras el programa te va a salir exactamente el mismo número aleatorio (a menos de que cambies la semilla), o la misma secuencia. Esto se puede observar en el propio método:

Código
  1.  synchronized public void setSeed(long seed) {
  2.       this.seed = (seed ^ 0x5DEECE66DL) & ((1L << 48) - 1);
  3.       haveNextNextGaussian = false;
  4. }

La manera más fácil (desde mi punto de vista) de generar números aleatorios (NO pseudo-aleatorios), es utilizar el método setSeed de la siguiente manera:

Código
  1. import java.util.*;
  2. public class aleatorio {
  3. private Random r;
  4. public aleatorio() {
  5. r=new Random();
  6. r.setSeed(new Date().getTime());
  7. }
  8. public int generarAleatorio() {
  9. int n=r.nextInt(1000);
  10. return n;
  11. }
  12. }

Así, la semilla cambiará cada vez que se ejecute el programa, y por ende los números sí serán aleatorios (al menos en la práctica).

Un saludo!!!


« Última modificación: 1 Agosto 2007, 00:29 am por Casidiablo » En línea

Jess_Kapria


Desconectado Desconectado

Mensajes: 676


Mas chustas no : XD :


Ver Perfil
Re: Las semillas de Random (una aclaración por favor)
« Respuesta #2 en: 1 Agosto 2007, 16:36 pm »

Gracias Casidiablo me ha servido mucho tu explicación , algún libro que me recomiendes  :huh: :huh:

Saludos ,  :xD
En línea


Yshua

Desconectado Desconectado

Mensajes: 51


Yeshúa Ha Mashiaj... Mikamoha belim Adonai


Ver Perfil WWW
Re: Las semillas de Random (una aclaración por favor)
« Respuesta #3 en: 1 Agosto 2007, 18:15 pm »

hay uno, de los mejores para empezar, "Aprenda java como si estubiera en primero", si lo pones en google lo encuentras fácil
En línea


Baruj aba beshem Adonai.
<a href="http://www.cp666group.com">visita mi sitio CP666GROUP</a>
egyware


Desconectado Desconectado

Mensajes: 526



Ver Perfil WWW
Re: Las semillas de Random (una aclaración por favor)
« Respuesta #4 en: 1 Agosto 2007, 22:04 pm »

mira no se usar esa clase pero cuando programaba en qbasic la semilla le daba como valor el tiempo transcurrido desde las doce de la noche (un comando especial de qbasic) pueder usar un equivalente en java (no se si habra pero puedes invertarlo) prueba xau xau
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines