Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Freeze. en 13 Septiembre 2008, 17:08 pm



Título: El Random no es tan Random.
Publicado por: Freeze. en 13 Septiembre 2008, 17:08 pm
Bueno, compruebenlo ustedes mismos. Ya se que no es un secreto pero aca lo dejo:
Código
  1. Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  2. For i = 0 To 1000
  3.    Picture1.PSet (Random(5000), Random(3000))
  4.    Picture1.ForeColor = RGB(Random(255), Random(255), Random(255))
  5.    Picture1.DrawWidth = Random(10)
  6. Next i
  7. End Sub
  8. Function Random(Max As Long)
  9. Randomize Rnd
  10. Tmp = Int((Max - 1 + 1) * Rnd) + 1
  11. Random = Tmp
  12. End Function


Título: Re: El Random no es tan Random.
Publicado por: el_c0c0 en 13 Septiembre 2008, 18:47 pm
.


Título: Re: El Random no es tan Random.
Publicado por: Freeze. en 13 Septiembre 2008, 18:54 pm
La idea es que se vea que siempre se repite y siempre es lo mismo, pinta en los mismos lugares una y otra vez :P

Eso es lo malo de aprender dogmas. Siempre he creido que hay que poner Randomize Rnd. :P

saludos ;D :-[ :-[ :-[ :-[ :xD


Título: Re: El Random no es tan Random.
Publicado por: LeandroA en 13 Septiembre 2008, 19:13 pm
hola prova asi
Código:
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Randomize Timer
For i = 0 To 1000
    Picture1.PSet (Random(5000), Random(3000))
    Picture1.ForeColor = RGB(Random(255), Random(255), Random(255))
    Picture1.DrawWidth = Random(10)
Next i
End Sub
Function Random(Max As Long) As Integer
    Random = Int((Max - 1 + 1) * Rnd) + 1
End Function

osea llamar Randomize Timer de entrada


Título: Re: El Random no es tan Random.
Publicado por: Freeze. en 13 Septiembre 2008, 19:14 pm
Eso es lo malo de aprender dogmas. Siempre he creido que hay que poner Randomize Rnd. :P

saludos ;D :-[ :-[ :-[ :-[ :xD

:P :P

De todas maneras no es para un programa. ;D

Aunque ya que estan aca, quisiera saber cual sera la verdadera funcion Random. :xD Es que he buscado pero nada :P


Título: Re: El Random no es tan Random.
Publicado por: rob1104 en 14 Septiembre 2008, 03:56 am
En vez de poner Randomize Rnd deja solo Randomize, asi ya pinta siempre diferente.


Título: Re: El Random no es tan Random.
Publicado por: cobein en 14 Septiembre 2008, 13:13 pm
mmm yo no soy un experto en esto pero cuando pones Randomize le seteas el ceed y siendo que es una funcion matematica imagino que vas a tener resultados iguales, si queres algo que sea relativamente bueno busca "Mersenne twister" u otra cosa que genere valores pseudoelatorios o algun entropy collector.


Título: Re: El Random no es tan Random.
Publicado por: JineteNegro666 en 16 Septiembre 2008, 21:02 pm
Si quieres generar un número realmente aleatorio deberías de probar esto:


Código:
Private Sub Loquesea()
Randomize
numeroaleatorio = Int((10 * Rnd) + 1)

Con esto generas un número aleatorio entre 1 y 10, aunque ahora que pienso creo que en realidad era una especie de queja no? xD