Foros del Web » Programación para mayores de 30 ;) » Programación General »

Números aleatorios en VB6 pero con probabilidad

Estas en el tema de Números aleatorios en VB6 pero con probabilidad en el foro de Programación General en Foros del Web. Necesito crear 6 números al azar, desde el 1 al 10, pero de modo que haya probabilidad de que el numero situado antes en la ...
  #1 (permalink)  
Antiguo 26/06/2011, 04:23
 
Fecha de Ingreso: mayo-2011
Mensajes: 9
Antigüedad: 13 años
Puntos: 0
Números aleatorios en VB6 pero con probabilidad

Necesito crear 6 números al azar, desde el 1 al 10, pero de modo que haya probabilidad de que el numero situado antes en la siguiente lista, salga más fácilmente que el siguiente, es decir, que el número 5 tenga más probabilidad de salir que el 7, a su vez el 7 más que el 2, así hasta el último número.

5
7
2
9
1
4
6
8
3
10

Actualmente estoy usando este código para generarlos sin probabilidad ninguna. Quisiera poder adaptar este código y hacer que se generen con la probabilidad que he comentado anteriormente.

Cita:
Private Sub Command1_Click()

progreso.Max = txtcantidad
For contador = 1 To txtcantidad
progreso.Value = contador

'ejecutamos esta directiva para que el valor sea realmente aleatorio
Randomize Timer
'variable para los cinco números.
Dim seisnumeros(1 To 6) As Integer
'variable para tener el número temporal aleatorio y examinarlo con la matriz
'donde almacenaremos los cinco numeros aleatorios distintos
Dim temporal As Integer
'otras variables que necesitaremos durante el análisis
Dim i As Integer, j As Integer: j = 1
Dim x As Integer
'bucle para los cinco números aleatorios distintos
For i = 1 To 6
'en el caso del primer bucle no es necesario analizar nada, dado que la matriz destino
'está vacía
If i = 1 Then
'asignamos al primer elemento de la matriz el número aleatorio generado
seisnumeros(j) = Int((10 * Rnd) + 1) ' Genera un valor aleatorio entre 1 y 10.
'aumentamos en mas uno el contador del indice de la matriz destino
j = j + 1
Else
'para los demás casos que no sea el primer elemento de la matriz
'declaramos el retorno que emplearemos con goto
retorno:
'obtenemos el valor aleatorio
temporal = Int((10 * Rnd) + 1) 'Genera un valor aleatorio entre 1 y 10.
'recorremos la matriz destino íntegramente
For x = 1 To 6
'si el número aleatorio ya se encuentra....
If temporal = seisnumeros(x) Then
'volvemos al marcador -retorno-
GoTo retorno
End If
Next x
'sino asignamos el número aleatorio que se halla en la variable temporal
'al siguiente indice de la matriz
seisnumeros(j) = temporal ' Genera un valor aleatorio entre 1 y 10.
'aumentamos en mas uno el indice de la matriz para la asignación del
'siguiente
j = j + 1
End If
Next i

txt(0).Text = txt(0).Text + "," + Str(seisnumeros(1))
txt(1).Text = txt(1).Text + "," + Str(seisnumeros(2))
txt(2).Text = txt(2).Text + "," + Str(seisnumeros(3))
txt(3).Text = txt(3).Text + "," + Str(seisnumeros(4))
txt(4).Text = txt(4).Text + "," + Str(seisnumeros(5))
txt(5).Text = txt(5).Text + "," + Str(seisnumeros(6))

Next
MsgBox ("Los datos han sido generados")
End Sub
Las 3 primeras líneas dentro de la función son para crear una barra de progreso y asignarle un tamaño en base a la cantidad de veces que se va a repetir el bucle, con el que genero 6 números y los almaceno en unos textbox's repitiéndose la cantidad de veces que se ordena con txtcantidad. Después uso un código para evitar que los números salgan repetidos. Finalmente, almaceno cada número en un textbox, de modo que van separados por comas.
  #2 (permalink)  
Antiguo 30/06/2011, 22:14
 
Fecha de Ingreso: febrero-2010
Ubicación: Guayaquil - Ecuador
Mensajes: 350
Antigüedad: 14 años, 2 meses
Puntos: 13
Respuesta: Números aleatorios en VB6 pero con probabilidad

Cita:
Necesito crear 6 números al azar, desde el 1 al 10, pero de modo que haya probabilidad de que el numero situado antes en la siguiente lista, salga más fácilmente que el siguiente, es decir, que el número 5 tenga más probabilidad de salir que el 7, a su vez el 7 más que el 2, así hasta el último número.

5
7
2
9
1
4
6
8
3
10
Ese orden de probabilidad se dara siempre? y en el caso de ser asi, por que deseas probabilidad si sabes que ese es tu orden?
No comprendo que deseas hacer, seria bueno que explicaras un poco mas sobre tu problema

Etiquetas: vb6, aleatoria
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:51.