Autor |
Mensaje |
didier18
Aprendiz
Registrado: Junio 2014
Mensajes: 84
Edad: 66 Ubicación:
|
Número Aleatorio
Buenos días a todos
Con una etiqueta una botón y una sola línea de código, cómo obtener un valor aleatorio entre 000 y 999 sin utilizar "ramdomize" o "rnd"?
Buen día.
|
#1 Viernes, 07 Octobre 2016, 17:48 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Número Aleatorio
Buena opción si sólo necesitas un número una vez. Si lo tienes que usar muchas veces o en una secuencia no sería tan aleatorio...
=================== No podemos regresar
|
#2 Viernes, 07 Octobre 2016, 21:47 |
|
|
didier18
Aprendiz
Registrado: Junio 2014
Mensajes: 84
Edad: 66 Ubicación:
|
Re: Número Aleatorio
Hola shordi
Sí es cierto para una secuencia de bucle ya que éste depende de un número fijo de ciclos de reloj por lo que el resultado final será necesariamente con el mismo rango de números al azar, pero en este caso ya no cumple con las especificaciones que indica una sola línea de código
Para evitar el uso del bucle, voy a utilizar en lugar de la intervención (voluntaria o no) de usuario ...
Tales como el paso del ratón sobre un control.
Esta acción no se puede reproducir, por definición, con la misma precisión que un bucle.
Buen día.
|
#3 Sabado, 08 Octobre 2016, 10:00 |
|
|
Grandamakulo
Analista Programador
Registrado: Enero 2016
Mensajes: 311
Edad: 55 Ubicación: En un lugar de La Mancha de cuyo nombre me acuerdo perfectamente...
|
Re: Número Aleatorio
Me atrevo a entrometerme.
Si lo que se busca es un número aleatorio más bien irrepetible que impredecible, esto es, como indicador, efectivamente Now es la respuesta.
Por ejemplo, para identificar nodos dinámicos en un XML:
Dim lngId As Float
Dim strId As String
fltId = Now * 86400000 ' Genera el número único
'Esto permite pasar el número decimal a sus partes
'enteras como milésimas de segundo al día
strId = Hex(fltId) 'Y ya tienes tu identificador único de nodo
Debería funcionar, pero aviso que lo he escrito de memoria.
Sin embargo, simplemente para hacer impredecible un proceso, no veo tan claro esa secuencia numérica.
última edición por Grandamakulo el Martes, 18 Octobre 2016, 09:36; editado 3 veces
|
#4 Martes, 18 Octobre 2016, 07:30 |
|
|
Grandamakulo
Analista Programador
Registrado: Enero 2016
Mensajes: 311
Edad: 55 Ubicación: En un lugar de La Mancha de cuyo nombre me acuerdo perfectamente...
|
Re: Número Aleatorio
PS.- En una sola línea:
Public Sub Button1_click()
Label1.Caption = ("Identificador único = ") & Hex(Now * 86400000))
End
|
#5 Martes, 18 Octobre 2016, 07:34 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Número Aleatorio
Label1.Caption = ("Identificador único = ") & Hex(Now * 86400000))
Da error: " Type mismatch: wanted number, got Date instead "
Yo propongo:
última edición por vuott el Martes, 18 Octobre 2016, 07:59; editado 1 vez
|
#6 Martes, 18 Octobre 2016, 07:56 |
|
|
Grandamakulo
Analista Programador
Registrado: Enero 2016
Mensajes: 311
Edad: 55 Ubicación: En un lugar de La Mancha de cuyo nombre me acuerdo perfectamente...
|
Re: Número Aleatorio
Eso me pasa por escribir las cosas de memora.
Había hecho el paso a Long, pero no me acuerdo cómo. Evidentemente, antes de la multiplicación, para no truncar los decimales.
Gracias Vuott
|
#7 Martes, 18 Octobre 2016, 08:11 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Número Aleatorio
Grandamakulo;
Citar: Hex(CFloat(Val(Str(Now))) * 86400000)
Interesante... precisamente me hace falta una función que crees numero irrepetibles, para ir creando "id" únicos, para identificar estructuras de datos... bueno tambien puedo usar un contador...
Saludos
|
#8 Martes, 18 Octobre 2016, 09:08 |
|
|
Grandamakulo
Analista Programador
Registrado: Enero 2016
Mensajes: 311
Edad: 55 Ubicación: En un lugar de La Mancha de cuyo nombre me acuerdo perfectamente...
|
Re: Número Aleatorio
Efectivamente, al repasarlo queda:
|
#9 Martes, 18 Octobre 2016, 18:41 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Número Aleatorio
|
#10 Martes, 18 Octobre 2016, 22:53 |
|
|
|