Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => 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 (vb) [Seleccionar]
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
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)
Randomize Rnd
Tmp = Int((Max - 1 + 1) * Rnd) + 1
Random = Tmp
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

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
Cita de: Freeze. en 13 Septiembre 2008, 18:54 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:



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