Título: generador de numeros aleatorios en VB Publicado por: diego994 en 19 Noviembre 2003, 17:38 pm "Efectivo?" generador de números aleatorios en VB6
Bueno, este es un módulo q programe hace mucho para un juego en vb6, intenté jugar con la funcion Rnd sin usar la Randomize. gMaxNum es una variable global que no me acuerdo para q carajo era jejeje, na es el número max que puede devolver la función. Estudienlo q cambiando algunos valores se personaliza. Quizas a alguien le pueda servir. Public Function intNumeroaleatorio() As Integer Dim r As String, s As Integer, t As Integer, seacabo As Boolean seacabo = False Do While seacabo = False r = CStr(Timer) s = Len(r) t = Mid(r, s, 1) intNumeroaleatorio = (t * Int(gletras * Rnd)) r = CStr(intNumeroaleatorio) s = Len(r) t = Mid(r, s, 1) intNumeroaleatorio = t If intNumeroaleatorio >= 0 And intNumeroaleatorio < gMaxNum Then seacabo = True End If Loop End Function Título: Re: generador de numeros aleatorios en VB Publicado por: Xrasl en 9 Mayo 2004, 05:16 am Hola e mirado el source que aparece arriba, pero no consigo hacerlo funcionar. si no seria mucho pedir ¿pueden explicarme como se puede hacer funcionar, yo hice un codigo que creaba numeros aleatorios pero solo me respondia con 1s y 0s, es el siguiente:
Private Sub Command1_Click() Dim Num As Byte Randomize Num = Rnd Text1.Text = Num End Sub Yo quiero que me consiga numeros enteros entre 0 y 255, por lo que utilizé la variable byte, pero no se cual es el error que cometi. Espero k me respondan Gracias :) Título: Re: generador de numeros aleatorios en VB Publicado por: MMara en 16 Junio 2004, 20:15 pm si miras en la ayuda, te dice que rnd te da valores entre 0 y 1, así que lo que tienes que hacer es:
Int((Límite_superior - límite_inferior + 1) * Rnd + límite_inferior) Lo he probado y funciona: Código: Private Sub Command1_Click() Título: Re: generador de numeros aleatorios en VB Publicado por: Xrasl en 18 Junio 2004, 20:43 pm Ok muchas gracias.
MMara una duda sobre la ayuda. Yo le doy al boton d la ayuda y me pide que instale la "coleccion MSDN". Eso que es un programa de ayuda o algo asi? :P Graciassss ;) Título: Re: generador de numeros aleatorios en VB Publicado por: el_chente23 en 22 Junio 2004, 05:57 am La Coleccion MSDN (Microsoft Developer Network), Es La Ayuda Tipo CHM de Visual Studio 6.0, Esta ayuda Son 2 Discos, Por Lo Menos Esos Son Los Que Tengo Yo. ;)
Título: Re: generador de numeros aleatorios en VB Publicado por: Villamil en 26 Junio 2004, 00:53 am Yo para hacer números aleatorios hago:
Rnd =((Int*el número máximo)-1 Título: Re: generador de numeros aleatorios en VB Publicado por: Mad Antrax en 3 Julio 2004, 00:21 am Yo para hacer numeros aleatorios uso:
Num = Int((Rnd * numero maximo)+1) (esto me muestra un numero entre el: 1 al numero maximo o si no: Num = Int(Rnd * numero maximo) (esto me muestra un numero entre el: 0 al numero maximo - 1 Título: Re: generador de numeros aleatorios en VB Publicado por: bluedog en 25 Agosto 2004, 06:21 am La Coleccion MSDN (Microsoft Developer Network), Es La Ayuda Tipo CHM de Visual Studio 6.0, Esta ayuda Son 2 Discos, Por Lo Menos Esos Son Los Que Tengo Yo. ;) >>Ya y por si acaso, no sabes donde se podrían bajar esos discos? o simplemente hay que comprarselos a Microsoft?Título: Re: generador de numeros aleatorios en VB Publicado por: bluedog en 11 Septiembre 2004, 05:08 am >>Ya pues hombre! contesteis la questions o nadie sabe?
Título: Re: generador de numeros aleatorios en VB Publicado por: musky en 11 Noviembre 2004, 06:30 am La verdad es que el codigo que postea diego994 es totalmente descartable. Ya que el Visual Basic 6 cuenta con un algoritmo interno lo cual fue optimizado para lograr un mejor desempeño en las aplicaciones.
Se utiliza Randomize para que el Rnd sea <> al anterior. Rnd Genera un numero entre 0.001 y 0.999. Int Toma la parte entera redondeando para arriva espero que les quede claro todo adios Título: Re: generador de numeros aleatorios en VB Publicado por: Slasher-K en 24 Noviembre 2004, 14:18 pm Para crear VERDADEROS números aleatorios en VB hay que crear nuestro propio algoritmo usando varios valores variables y combinándolos. Si queremos valores aleatorios necesitamos recurrir a la API de Win2, por ejemplo a las funciones GetTickCount, GetCurrentProcessId, GetCurrentProcess, GetCurrentThreadId. Mezclando los valores devueltos por estas funciones, más la fecha y hora actuales, más algún número generado a partir de una CLSID aleatoria, podemos obtener un número aleatorio.
La idea de un número aleatorio es que no se repita en el tiempo, por lo tanto para crearlo tenemos que intentar usar parámetros que tampoco se repitan en el tiempo. Abajo dejo un ejemplo sencillo de como generar un nº aleatorio. Para usarlo hay que agregar una referencia a WIN.TLB Código: Function Rand(Optional Seed As Long) As Currency Título: Re: generador de numeros aleatorios en VB Publicado por: willmx en 29 Noviembre 2004, 09:25 am ¿si quiero generar numeros Pseudoaletorios? no necesito el random para eso....como lo harian
Título: Re: generador de numeros aleatorios en VB Publicado por: capi en 30 Diciembre 2004, 08:30 am tengo una duda y es que cuando uso rnd me sale todo bien pero siempre sale la misma cadena de numeros y por orden, alguien sabe como arreglar esto??? ???
Título: Re: generador de numeros aleatorios en VB Publicado por: capi en 31 Diciembre 2004, 09:17 am tengo una duda y es que cuando uso rnd me sale todo bien pero siempre sale la misma cadena de numeros y por orden, alguien sabe como arreglar esto??? ??? Ya lo he averiguado, para quien quiera saberlo con poner un "randomize" en el "From1_load" vale, sale siempre números diferentes. Título: Re: generador de numeros aleatorios en VB Publicado por: Aphex en 4 Enero 2005, 11:00 am Hola, feliz año a todos. Soy nuevo en el foro. Aunque solo soy un principiante en programación, al ver este mensaje se me ha ocurrido que quizás podría aportar algo.
Voy a poner una manera sencilla de sacar numeros aleatorios en VB6. Hace poco realicé un simulador de dados (uno de 8 caras y otro de 100). A continuación os pongo el código del de 8: Creais un nuevo proyecto (exe stándard) y añadís un botón (Command1), un timer (Timer1) y un label (Label1). El código sería: ------------------------------------------------------------------- Private Sub FormLoad() Timer1.Enabled = False End Sub _______________________________________________ Private Sub Command1_Click() Dim numero as Byte Timer1.Enabled = True Randomize Timer numero = rnd * 8 Do While numero > 8 numero = numero - 8 Loop Do While numero < 1 numero = numero + 8 Loop label1.Caption = numero End Sub ------------------------------------------------------------ Y ya está. Cada vez que se hace clic en el botón, el programa genera diferentes números comprendidos entre el 1 y el 8 los cuales se muestran en el label1 (para el de 100 caras, se sustituye el 8 por el 100). Espero que os sirva. ^^ PD: También espero que a los moderadores no les moleste que lo haya puesto sin el "code", pero creo que así se ve más claro (aunque si hace falta, pues me lo decís y lo cambio). Título: Re: generador de numeros aleatorios en VB Publicado por: Trebor en 12 Enero 2005, 08:26 am Hola, feliz año a todos. Soy nuevo en el foro. Aunque solo soy un principiante en programación, al ver este mensaje se me ha ocurrido que quizás podría aportar algo. buenas, gracias por el code, pero creo k el Voy a poner una manera sencilla de sacar numeros aleatorios en VB6. Hace poco realicé un simulador de dados (uno de 8 caras y otro de 100). A continuación os pongo el código del de 8: Creais un nuevo proyecto (exe stándard) y añadís un botón (Command1), un timer (Timer1) y un label (Label1). El código sería: ------------------------------------------------------------------- Private Sub FormLoad() Timer1.Enabled = False End Sub _______________________________________________ Private Sub Command1_Click() Dim numero as Byte Timer1.Enabled = True Randomize Timer numero = rnd * 8 Do While numero > 8 numero = numero - 8 Loop Do While numero < 1 numero = numero + 8 Loop label1.Caption = numero End Sub ------------------------------------------------------------ Y ya está. Cada vez que se hace clic en el botón, el programa genera diferentes números comprendidos entre el 1 y el 8 los cuales se muestran en el label1 (para el de 100 caras, se sustituye el 8 por el 100). Espero que os sirva. ^^ PD: También espero que a los moderadores no les moleste que lo haya puesto sin el "code", pero creo que así se ve más claro (aunque si hace falta, pues me lo decís y lo cambio). Private Sub FormLoad() Timer1.Enabled = False End Sub no hace falta,el control timer, como otros, por ejemplo el winsock, no se muestran en tiempo de ejecucion ;) Título: Re: generador de numeros aleatorios en VB Publicado por: zaerik en 12 Enero 2005, 08:32 am buenas, gracias por el code, pero creo k el Código: Private Sub FormLoad() no hace falta,el control timer, como otros, por ejemplo el winsock, no se muestran en tiempo de ejecucion ;) Creo que te equivocas de funcion :P, esa funcion lo que hace es que al cargar el programa el timer1 se desactive, porque al autor del programa le interesaba que el timer1 solo se active cuando le de a un boton, por eso luego usa la funcion: Código: Private Sub Command1_Click() Título: Re: generador de numeros aleatorios en VB Publicado por: Trebor en 14 Enero 2005, 09:05 am joder k cabeza la mia, la abia confundido con visible,jajajaj, lo siento
Título: Re: generador de numeros aleatorios en VB Publicado por: Juan_Perez en 22 Abril 2005, 18:10 pm Les dejo una función que genera números aleatorios. Esta está codificada en Pascal pero se puede adaptar fácilmente a Visual Basic, sólo usa las operaciones aritméticas y los operadores binarios DIV y MOD, los cuales dan el cociente y el residuo de una división entera respectivamente. Esta función y el texto en cursiva abajo lo saqué del libro "Pascal Avanzado. Técnicas de Programación" de Paul Sand, de la editorial McGraw-Hill 1985. Libro excelente para el programador en general, no sólo el que programa en Pascal, ya que su énfasis es en las técnicas de programación antes que en un lenguaje específico como Pascal. En el desarrollan en cada capítulo programas útiles o interesantes (entrada interactiva, una calculadora de propósito general, el juego de tablero reversi, simulación y animación y en el último capítulo un auténtico proyecto: una hoja de cálculo).
Esta función viene en el apéndice del libro y el autor la puso para resolver problemas de transportabilidad con las versiones de Pascal que no soportaban números aleatoreos, función que el usa en el capítulo de simulación y animación. Código: function random: integer; ... seed[1] := 90; seed[2] := 178; seed[3] := 246; seed[4] := 147; ... Sin embargo, si asignamos los valores iniciales al array seed de esta forma, obtendremos siempre la misma secuencia aleatoria (lo cual es deseable en muchas circunstancias). Para evitar esto, Apple Pascal suministra el procedimiento randomize, el cual hace que se generen diferentes secuencias aleatorias. El mismo efecto puede obtenerse cambiando los elementos del array seed a otros valores antes de que se haga cualquier llamada a random; cómo puede hacerse esto se lo dejamos a usted. Por ejemplo, podría coger el intervalo de tiempo en ciclos de máquina entre la pulsación de dos teclas. Esta rutina fue extraída de Seminumerical Algortihms de D. Knuth (Adison-Wesley, 1981). Esta obra clásica contiene información sobre aritmética y generadores de números aleatoreos. Título: Re: generador de numeros aleatorios en VB Publicado por: Unravel en 29 Abril 2005, 05:22 am Quería puntualizar una cosa nada mas,
Si alguno conseguís generar números aleatorios, habreis revolucionado el mundo ;) Si la misma semilla genera el mismo número (como ocurre siempre) ya no son número aleatorios. Título: Re: generador de numeros aleatorios en VB Publicado por: Bertin en 29 Abril 2005, 15:34 pm Aqui os mando una solucion muy sencilla para la generacion de numeros aleatorios q funciona perfectamente. La funcion randomize sirve para inicializar el generador sino os hara siempre la misma cadena de nºs aleatorios. Despues simplemete es la siguiente sintaxis:
num_aleatorio=((lim_superior-lim_inferior)*rnd) Ejemplo de num aleatorio del 1 al 10: Código: Private Sub Command1_Click() ASI DE SENCILLO NO OS KOMAIS MAS EL kOKO!! bueno espero q os sirva de ayuda. Título: Re: generador de numeros aleatorios en VB Publicado por: BADBYTE-K en 20 Mayo 2005, 04:32 am form.show
apoyo a unravel en lo que dice Título: Re: generador de numeros aleatorios en VB Publicado por: Monica_si en 25 Mayo 2005, 22:38 pm Hola! Yo necesito saber si existe alguna forma de crear numeros aleatorios pero sin utilizar la funcion random,por favor ayudenme! ;D
Título: Re: generador de numeros aleatorios en VB Publicado por: Benni en 20 Junio 2005, 08:31 am aqui uno q hice
Código: Randomize Título: Re: generador de numeros aleatorios en VB Publicado por: Dark_Knight en 26 Julio 2005, 08:34 am hola
Alguien me podria decir como hacer un generador de numeros y letras ;D ;D Título: Re: generador de numeros aleatorios en VB Publicado por: ferris en 27 Julio 2005, 02:08 am hola es la primera vez que me conecto con este foro y es exelente son de gran ayuda , quisiera saber com puedo llenar una grilla con numeros aleatorios
Título: Re: generador de numeros aleatorios en VB Publicado por: NYlOn en 21 Agosto 2005, 08:24 am Citar Alguien me podria decir como hacer un generador de numeros y letras para generar letras aleatoriamente, podrias asignarle una letra a cada numero aca hice una pequeña demostracion Código: Private Sub Command1_Click() espero que te sirva ::D Citar quisiera saber com puedo llenar una grilla con numeros aleatorios soy de Argentina, a que te referis con grilla ?? XDsi lo que keres es llenar un textbox siempre con la misma cantidad de numeros seria asi: Código: Dim Num As Long solo saldran numeros de 3 sifras si no aclare tu duda, por favor postea de vuelta ^^ un abraz0 ;) G0nz4 Título: Re: generador de numeros aleatorios en VB Publicado por: desnut en 2 Junio 2008, 22:14 pm Buenas, a todos. Estoy intentando hacer un programa que genere numeros aleatorios.
De momento e conseguido que genere numeros aleatorios con el codigo expuesto en este post y ahora me interesaria que el programa comparara los numeros y dijera cual es el primer numero que sale repetido mas veces, cual es el segundo numero que sale mas veces despues del primero y cual es el 3r numero repetido que sale mas veces. de momento esto es lo mas aproximado. Private Sub Command1_Click() Dim num As Integer Math.Randomize num = ((36 - 0) * Rnd) Text1.Text = num List1.AddItem Text1.Text End Sub Cuando genera los numeros los apunta en el listbox, la cuestion seria que sacara los 3 resultados de los numeros que mas veces se repiten en 3 texbox distintos por ejemplo, No hace falta decir que he buscado por el tito google y por todas partes y no e encontrado nada, gracias de antemano ;). Título: Re: generador de numeros aleatorios en VB Publicado por: seba123neo en 2 Junio 2008, 22:17 pm desnut,hombre,reviviste un post de 3 años :¬¬,pregunta en uno nuevo...
Título: Re: generador de numeros aleatorios en VB Publicado por: abel_c_b en 2 Junio 2008, 22:23 pm Las cosas que uno hace ;D
Título: Re: generador de numeros aleatorios en VB Publicado por: desnut en 3 Junio 2008, 10:35 am jejejje, no me habia dado cuenta que el post tenia tanto xd, abrire otro haber k tal, gracias.
Título: Re: generador de numeros aleatorios en VB Publicado por: sphiros en 17 Diciembre 2010, 06:28 am aqui les dejo este ejemplo que genera numeros y letras aleatoriamente
Private Sub Form_Load() cadena = "abcdefghijklmnopqrstuvwxyz" cadena = cadena & UCase(cadena) cadena = cadena & "1234567980" End Sub Private Sub Command1_Click() For i = 1 To 12 'aquí pueden poner la cantidad que no sea mayor al len() de la cadena Randomize Time num = CInt((1 - Len(cadena)) * Rnd + Len(cadena)) salida = salida & Mid(cadena, num, 1) Next i End Sub :rolleyes: ;-) ;-) :silbar: |