Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Número Aleatorio
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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"?

Public Sub Button1_click()

  Label1.Caption = ("Valor aleatorio = ") & Format$(Time(Now), "uu")

End


Buen día.
 



 
didier18 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
didier18 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 
Grandamakulo - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Número Aleatorio 
 
PS.- En una sola línea:

Public Sub Button1_click()

  Label1.Caption = ("Identificador único = ") & Hex(Now * 86400000))

End

 



 
Grandamakulo - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Número Aleatorio 
 
Grandamakulo escribió: [Ver mensaje]

  Label1.Caption = ("Identificador único = ") & Hex(Now * 86400000))

Da error: " Type mismatch: wanted number, got Date instead "


Yo propongo:
Label1.Caption = "Identificador único = " & Hex(CFloat(Val(Str(Now))) * 86400000)

 



 
última edición por vuott el Martes, 18 Octobre 2016, 07:59; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
Grandamakulo - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Número Aleatorio 
 
Efectivamente, al repasarlo queda:

Código: [Descargar] [Ocultar]
  1. strId = Hex(CFloat(Now) * 86400000)

 



 
Grandamakulo - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Número Aleatorio 
 
Grandamakulo escribió: [Ver mensaje]
Código: [Descargar] [Ocultar]
  1. strId = Hex(CFloat(Now) * 86400000)


Asì es mejor.
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes No Repetir Un Numero Aleatorio Con Rnd pittusa General 12 Martes, 18 Enero 2011, 03:03 Ver último mensaje
ivanovichenco
No hay nuevos mensajes Problema Aleatorio En El Editor De Gambas3 Shell General 6 Martes, 03 Julio 2012, 23:19 Ver último mensaje
Shell
No hay nuevos mensajes Número O Letra Shell General 9 Lunes, 12 Octobre 2015, 10:16 Ver último mensaje
vuott
No hay nuevos mensajes Saber El Número De Día De La Semana calcena General 5 Viernes, 06 Octobre 2017, 22:27 Ver último mensaje
vuott
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron