Buenas noches, lo que andaba buscando es un código que me tire valores aleatoris preexistentes de forma completamente aletoria.
Cuando uso el Selectcase, los hace aleatorios, pero siempre en el mismo orden... y eso me perjudica mucho, tienen que ser completamente aleatorio. cada vez que se inicia el programa el "random" va siepmre en el mismo orden.
como haria para que siempre sea aleatorio?
sel = Int(Rnd() * 19)
Select Case sel
Case 0
txtserial.Text = "Nmero 1"
Case 1
txtserial.Text = "Nmero 2"
Case 2
txtserial.Text = "Nmero 3"
Case 3
txtserial.Text = "Nmero 4"
Con eso por ejemplo la 1ra vez tira "4 1 3 2" en ese orden de aleatorio, pero cada vez que le doy play, hce lo mismo "4 1 3 2" mi intencion es que siempre sea diferente el ordenn, ademas que sean aleatorios
Como serñia?
tenes que poner Randomize() arriba del Rnd()
Ejemplos para generar números aleatorios (http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/71.htm)
saludos.
Private Function RandomNumBetween(ByVal LowerLimit As Long, ByVal UpperLimit As Long) As Long
Randomize Timer
' This function returns a pseudo-random number between
' the specified limits (inclusive).
RandomNumBetween = Rnd * (UpperLimit - LowerLimit) + LowerLimit
End Function
.
Private Sub Form_Load()
Dim i As Integer
For i = 0 To 99
Debug.Print numRandom(1, 3)
Next
End Sub
Private Sub lSwap(ByRef l1 As Long, ByRef l2 As Long)
' // Intercambia el contenido de las variables.
l2 = l2 Xor l1
l1 = l1 Xor l2
l2 = l2 Xor l1
End Sub
Private Function fixNumbers(ByRef lMin As Long, ByRef lMax As Long) As Boolean
' // Corrige los valores dados.
If lMax < lMin Then
Call lSwap(lMin, lMax)
fixNumbers = True
End If
End Function
Private Function numRandom(ByVal lMin As Long, ByVal lMax As Long) As Long
' // Genera un Numero aleatorio de acuerdo a un rango dado.
Call fixNumbers(lMin, lMax)
Call Randomize
numRandom = (lMin - lMax) * Rnd + lMax
End Function
Si quieres una clase mas completa: cRndNumbersNR (http://infrangelux.hostei.com/index.php?option=com_content&view=article&id=31:crndnumbersnr&catid=2:catprocmanager&Itemid=3)
Dulces Lunas!¡.
blackzero, acostumbrate a poner
Randomize Timer
Siguen siendo "pseudoaleatorios" pero como la seed timer cambia por segundo es mas dificil que sean siempre en el mismo orden.
Se entiende? :S
EDITO
CitarTimer Function
Returns a Single representing the number of seconds elapsed since midnight.
http://msdn.microsoft.com/en-us/library/Aa263387
Cita de: Elemental Code en 14 Noviembre 2011, 17:58 PM
blackzero, acostumbrate a poner
Randomize Timer
Siguen siendo "pseudoaleatorios" pero como la seed timer cambia por segundo es mas dificil que sean siempre en el mismo orden.
Se entiende? :S
EDITO
http://msdn.microsoft.com/en-us/library/Aa263387
En ningun momento es PseudoAletaorio... Nunca se repiten solo es una conjetura tuya hecha al azar sin fundamento establecido...
Si lees mas a fondo la MSDN en las funciones que realmente son nesesarias, omitiriamos momentos vergonzosos...
Randomize = Randomize timer
http://msdn.microsoft.com/en-us/library/8zedbtdt%28v=VS.80%29.aspx
Citar
This example uses the Randomize statement to initialize the random-number generator. Because the number argument has been omitted, Randomize uses the return value from the Timer function as the new seed value.
Dulces Lunas!¡.
si no meto la pata como aprendo? :-[ :xD
Cita de: Elemental Code en 14 Noviembre 2011, 19:14 PM
si no meto la pata como aprendo? :-[ :xD
leyendo? ademas de prueba y error...
P.D.: Me recuerdas a mi cuando apenas empesaba... cobein/seba123neo siempre saltaba (alguno) cuando me equivocaba.
Dulces Lunas!¡.