i1
lista
0
2
1
1
1
1
0
2
1
1
1
2
0
2
1
1
1
3
0
2
1
1
1
4
0
2
1
1
1
5
0
2
1
1
1
6
0
2
1
1
1
7
0
2
1
1
1
8
0
2
1
1
1
9
0
2
1
1
1
10
0
2
1
1
1
11
0
2
1
1
1
12
0
2
1
1
1
13
0
2
1
1
1
14
0
2
1
1
1
15
0
2
1
1
1
16
0
2
1
1
1
17
0
2
1
1
1
18
0
2
1
1
1
19
0
2
1
1
1
20
0
2
1
1
1
21
0
2
1
1
1
22
0
2
1
1
1
23
0
2
1
1
1
24
0
2
1
1
1
25
0
2
1
1
1
26
0
2
1
1
1
27
0
2
1
1
1
28
0
2
1
1
1
29
0
2
1
1
1
30
0
2
1
1
1
31
0
2
1
1
1
32
0
2
1
1
1
33
0
2
1
1
1
34
0
2
1
1
1
35
0
2
1
1
1
36
0
2
1
1
1
37
0
2
1
1
1
38
0
2
1
1
1
39
0
2
1
1
1
40
Se nutrió con los primeros 1000 sucesos que arroja La Rutina dato1, veamos;
estado | p2 | p1 | i2 | i1 | lista |
1 | 2 | 1 | 4 | 1 | 1 |
1 | 2 | 1 | 3 | 1 | 2 |
1 | 2 | 1 | 2 | 1 | 3 |
1 | 1 | 2 | 2 | 1 | 4 |
1 | 1 | 2 | 2 | 1 | 5 |
1 | 1 | 2 | 4 | 1 | 6 |
1 | 2 | 1 | 3 | 1 | 7 |
1 | 2 | 1 | 2 | 1 | 8 |
1 | 1 | 2 | 4 | 1 | 9 |
1 | 2 | 1 | 3 | 1 | 10 |
1 | 2 | 1 | 2 | 1 | 11 |
1 | 1 | 2 | 4 | 1 | 12 |
1 | 2 | 1 | 3 | 1 | 13 |
1 | 2 | 1 | 2 | 1 | 14 |
1 | 1 | 2 | 2 | 1 | 15 |
1 | 1 | 2 | 3 | 1 | 16 |
1 | 2 | 1 | 2 | 1 | 17 |
1 | 1 | 2 | 2 | 1 | 18 |
1 | 1 | 2 | 6 | 1 | 19 |
1 | 2 | 1 | 5 | 1 | 20 |
1 | 2 | 1 | 4 | 1 | 21 |
1 | 2 | 1 | 3 | 1 | 22 |
1 | 2 | 1 | 2 | 1 | 23 |
1 | 1 | 2 | 3 | 1 | 24 |
1 | 2 | 1 | 2 | 1 | 25 |
1 | 1 | 2 | 2 | 1 | 26 |
1 | 1 | 2 | 2 | 1 | 27 |
1 | 1 | 2 | 2 | 1 | 28 |
1 | 1 | 2 | 2 | 1 | 29 |
1 | 1 | 2 | 3 | 1 | 30 |
1 | 2 | 1 | 2 | 1 | 31 |
1 | 1 | 2 | 2 | 1 | 32 |
1 | 1 | 2 | 2 | 1 | 33 |
1 | 1 | 2 | 2 | 1 | 34 |
1 | 1 | 2 | 3 | 1 | 35 |
1 | 2 | 1 | 2 | 1 | 36 |
1 | 1 | 2 | 2 | 1 | 37 |
1 | 1 | 2 | 5 | 1 | 38 |
1 | 2 | 1 | 4 | 1 | 39 |
1 | 2 | 1 | 3 | 1 | 40 |
Obsérvese lo hallado, en la lista 19 se halla el evento más antiguo de La Galería registrándose un índice = 6, con las siguientes listas hasta la 22, que se encuentran en orden correlativo descendente.
Gracias a la Galería Binaria, el índice del evento más antiguo será el menor de todas las otras magnitudes de Galerías de tres o más eventos.
La razón por la cual índice del evento antiguo se incrementa, viene dada por la libre posibilidad que el evento reciente repita.
Resta pues nutrir tres Galerías Binarias G1, G2, G3 y estudiar el límite de cada hito de cada Galería.
Se podría estudiar las serie en la cual se repite alternativamente 1,2,1,2,1,2,1,2,1,2
La serie 1,2,3,1,2,3,1,2,3… Posee más ruido y se puede producir en la Galería de tres eventos, que no es el caso que nos ocupa.
Volvamos brevemente a la Galería ( 0,1,2,3,4,5,6,7,8,9), si el valor de p o v2, son constantes, entonces dentro de la galería, se debe observar un comportamiento diferente al de la variable aleatoria, existe un libro al cual tildan del "más aburrido del mundo" que contiene una enorme cantidad de los dígitos del valor de p, así que se debe nutrir esta Galería con dichos datos y observar…
Se inicializó una Galería Binaria con 1000 Listas y se alimentó con 1000 datos y se obtuvo lo siguiente, a ver;
estado | p2 | p1 | i2 | i1 | lista |
1 | 1 | 2 | 2 | 1 | 83 |
1 | 1 | 2 | 11 | 1 | 84 |
1 | 2 | 1 | 10 | 1 | 85 |
1 | 2 | 1 | 9 | 1 | 86 |
1 | 2 | 1 | 8 | 1 | 87 |
1 | 2 | 1 | 7 | 1 | 88 |
1 | 2 | 1 | 6 | 1 | 89 |
1 | 2 | 1 | 5 | 1 | 90 |
1 | 2 | 1 | 4 | 1 | 91 |
1 | 2 | 1 | 3 | 1 | 92 |
1 | 2 | 1 | 2 | 1 | 93 |
1 | 1 | 2 | 2 | 1 | 94 |
1 | 1 | 2 | 3 | 1 | 95 |
1 | 2 | 1 | 2 | 1 | 96 |
1 | 1 | 2 | 2 | 1 | 97 |
1 | 1 | 2 | 3 | 1 | 98 |
Nótese, además del ordenamiento del evento 2 que ocupa p2 desde la lista 85 hasta la 93, que sólo pueden suceder dos casos, evaluemos cuando en la lista 83 suceda p2 = evento 1 a ver;
Entonces sucede el evento 2 de p1 en la lista 84 y el índice i2 se incrementa, veamos la porción de galería en este caso;
estado | p2 | p1 | i2 | i1 | lista |
1 | 2 | 1 | 2 | 1 | 83 |
1 | 1 | 2 | 12 | 1 | 84 |
1 | 2 | 1 | 11 | 1 | 85 |
1 | 2 | 1 | 10 | 1 | 86 |
1 | 2 | 1 | 9 | 1 | 87 |
1 | 2 | 1 | 8 | 1 | 88 |
1 | 2 | 1 | 7 | 1 | 89 |
1 | 2 | 1 | 6 | 1 | 90 |
1 | 2 | 1 | 5 | 1 | 91 |
1 | 2 | 1 | 4 | 1 | 92 |
1 | 2 | 1 | 3 | 1 | 93 |
1 | 2 | 1 | 2 | 1 | 94 |
Cuando en la lista 83 suceda p1 = evento 2 a ver;
Entonces sucede el evento 1 de p1 en la lista 84 y el índice i2 se inicializa con el valor 2.
Veamos la porción de Galería en este caso;
estado | p2 | p1 | i2 | i1 | lista |
1 | 1 | 2 | 3 | 1 | 83 |
1 | 2 | 1 | 2 | 1 | 84 |
1 | 1 | 2 | 2 | 1 | 85 |
1 | 1 | 2 | 2 | 1 | 86 |
1 | 1 | 2 | 2 | 1 | 87 |
1 | 1 | 2 | 2 | 1 | 88 |
1 | 1 | 2 | 2 | 1 | 89 |
1 | 1 | 2 | 2 | 1 | 90 |
1 | 1 | 2 | 2 | 1 | 91 |
1 | 1 | 2 | 2 | 1 | 92 |
1 | 1 | 2 | 2 | 1 | 93 |
1 | 1 | 2 | 3 | 1 | 94 |
1 | 2 | 1 | 2 | 1 | 95 |
1 | 1 | 2 | 2 | 1 | 96 |
1 | 1 | 2 | 3 | 1 | 97 |
1 | 2 | 1 | 2 | 1 | 98 |
Una gráfica vale más que mil palabras… ¡Orden dentro del DesOrden!
Programación completa en Visual Basic 6.0 adaptada al Conjunto Binario.
Sub pronóstico()
mayor
buscamayor
lectura
End Sub
Sub mayor()
Data1.Recordset.MoveFirst
leer1
While Not Data1.Recordset.EOF
leer2
If Val(Text19) > Val(Text9) Then leer1 'en LN izquierda la L aux más antigua
Data1.Recordset.MoveNext
Wend
End Sub
Sub buscamayor()
Data1.Recordset.MoveFirst
leer2
While Not Val(Text21) = Val(Text22)
Data1.Recordset.MoveNext
leer2
Wend
End Sub
Sub lectura()
leer1 'lectura inversa en La Galería de Listas
d = Val(Text21)
Text27 = 2
If Not d = 1 Then
Data1.Recordset.MoveNext
While Not d = 1
Data1.Recordset.MovePrevious
leer1
d = Data1.Recordset.Fields("lista")
If Val(Text27) = 2 Then
evento = Val(Text4)
Else
evento = Val(Text5)
End If
Text27 = Val(evento) ' acarreo
Wend
Else
Text27 = Val(Text4)
End If
End Sub
Sub proceso()
If Val(Text27) = Val(Text25) Then
guardadata
Text30 = 1
Else
Text30 = Val(Text30) + 1 ' CONTEO DE LOS TIEMPOS FALLIDOS
End If
End Sub
Sub guardadata()
Data4.Recordset.AddNew
Data4.Recordset.Fields("tiempodeespera") = Val(Text30)
Data4.Recordset.Update
End Sub
Sub leer1()
Text23 = Data1.Recordset.Fields("estado")
Text4 = Data1.Recordset.Fields("p2")
Text5 = Data1.Recordset.Fields("p1")
Text9 = Data1.Recordset.Fields("i2")
Text10 = Data1.Recordset.Fields("i1")
Text21 = Data1.Recordset.Fields("lista")
End Sub
Sub leer2()
Text24 = Data1.Recordset.Fields("estado")
Text14 = Data1.Recordset.Fields("p2")
Text15 = Data1.Recordset.Fields("p1")
Text19 = Data1.Recordset.Fields("i2")
Text20 = Data1.Recordset.Fields("i1")
Text22 = Data1.Recordset.Fields("lista")
End Sub
Sub galería()
Data1.Recordset.MoveFirst
While Not Data1.Recordset.EOF
leer1
mover
guardar
Data1.Recordset.MoveNext
Wend
End Sub
Sub mover()
If Val(Text25) = Val(Text4) Then
x = 2
If Val(Text23) = 0 And Val(j) > Val(Text9) Then Text23 = 1 ' esto es para saber si el índice de p5 es real, Estado = 1
Text4 = Val(Text5): Text9 = Val(Text10) + 1
Else
x = 1: Text9 = Val(Text9) + 1
End If
Text5 = Val(Text25): Text25 = Val(x)
End Sub
Sub guardar()
Data1.Recordset.Edit
Data1.Recordset.Fields("p2") = Val(Text4)
Data1.Recordset.Fields("p1") = Val(Text5)
Data1.Recordset.Fields("i2") = Val(Text9)
'Data1.Recordset.Fields("i1") = Val(Text10) ' el valor aquí siempre es 1
Data1.Recordset.Update
End Sub
Sub aleatorio()
dato1
'dato2
'dato3
End Sub
Sub dato1()
' por supuesto, esta asignación de valores a cada subconjunto es arbitraria
Text25 = Int(Rnd * 100): Text26 = Val(Text25)
asignación
End Sub
Sub dato2()
leerpotencia
For jx = 1 To Val(centena)
Rnd
Next
centena = Int(Rnd * 1000)
For jx = 1 To Val(decena)
Rnd
Next
decena = Int(Rnd * 100)
For jx = 1 To Val(unidad)
Rnd
Next
unidad = Int(Rnd * 10)
guardapotencia
Text25 = Int(Rnd * 100): Text26 = Val(Text25)
asignación
End Sub
Sub dato3()
'dato2 'aquí esta rutina #2 es opcional
n = 1
p2 = Int(Rnd * 10) + 1 ' para que el valor sea entre 1 y 10
For u = 0 To Val(p2)
n = n * 10
Next
p1 = Rnd * n * 10
p3 = Int(Val(p1)) – Int(Val(p1) / 100) * 100
Text25 = Val(p3): Text26 = Val(Text25)
asignación
End Sub
Sub asignación()
If Val(Text25) < 50 Then
Text26 = Val(Text25): Text25 = 1 ' menores 1 MAYORES 2
Else
Text26 = Val(Text25): Text25 = 2
End If
End Sub
Sub leerpotencia()
Data2.Recordset.MoveFirst
unidad = Data2.Recordset.Fields("unidad")
decena = Data2.Recordset.Fields("decena")
centena = Data2.Recordset.Fields("centena")
End Sub
Sub guardapotencia()
Data2.Recordset.MoveFirst
Data2.Recordset.Edit
Data2.Recordset.Fields("unidad") = Val(unidad)
Data2.Recordset.Fields("decena") = Val(decena)
Data2.Recordset.Fields("centena") = Val(centena)
Data2.Recordset.Update
End Sub
Private Sub Command1_Click()
End
'programa Más avanzado BINARIO
End Sub
Private Sub Command2_Click()
' la galería no es única, si p2 no empieza en 2 se obtiene otra galería, la correcta empieza en 2
' porque 2 se refiere a la posición del evento más antiguo, demás no está estudiarle,
' estado se refiere a que los índices sean reales puesto que también es única
If Not Data1.Recordset.EOF Then ' máximo ofrece el doble de información,gratuita…
Data1.Recordset.MoveFirst ' mínimo una es función de la otra
While Not Data1.Recordset.EOF
Data1.Recordset.Delete
Data1.Recordset.MoveNext
Wend
End If
For j = 1 To Val(Text28)
Data1.Recordset.AddNew
Data1.Recordset.Fields("estado") = 0
Data1.Recordset.Fields("p2") = 2
Data1.Recordset.Fields("p1") = 1
Data1.Recordset.Fields("i2") = 1
Data1.Recordset.Fields("i1") = 1
Data1.Recordset.Fields("lista") = Val(j)
Data1.Recordset.Update
Next j
If Not Data2.Recordset.EOF Then
Data2.Recordset.MoveFirst
While Not Data2.Recordset.EOF
Data2.Recordset.Delete
Data2.Recordset.MoveNext
Wend
End If
Data2.Recordset.AddNew
Data2.Recordset.Fields("unidad") = 1
Data2.Recordset.Fields("decena") = 10
Data2.Recordset.Fields("centena") = 100
Data2.Recordset.Update
If Not Data4.Recordset.EOF Then
Data4.Recordset.MoveFirst
While Not Data4.Recordset.EOF
Data4.Recordset.Delete
Data4.Recordset.MoveNext
Wend
End If
If Not Data5.Recordset.EOF Then
Data5.Recordset.MoveFirst
While Not Data5.Recordset.EOF
Data5.Recordset.Delete
Data5.Recordset.MoveNext
Wend
End If
Text29 = "fin crear listas binarias"
End Sub
Private Sub Command3_Click()
Text29 = ""
For j = 1 To 1000 ' cantidad de sucesos
Text25 = Val(Text28)
dato1
galería
Next j
Text29 = "Fin Correr Listas Binarias"
End Sub
Private Sub Command4_Click()
Text29 = ""
Text30 = 1
For j = 1 To 100
aleatorio
Text27 = 2
pronóstico
proceso
galería
Text33 = Val(j)
Next j
Text29 = "Fin Macro Prueba I"
End Sub
Private Sub Command5_Click()
If Not Data3.Recordset.EOF Then
Data3.Recordset.MoveFirst
While Not Data3.Recordset.EOF
Data3.Recordset.Delete
Data3.Recordset.MoveNext
Wend
End If
End Sub
Text29 = "Archivo #3 Borrado"
Private Sub Command6_Click()
pronóstico
End Sub
Private Sub Command7_Click()
Text19 = 0
Data1.Recordset.MoveFirst
While Not Data1.Recordset.EOF
leer1
If Val(Text9) > Val(Text19) Then
Text19 = Val(Text9)
Data5.Recordset.AddNew
Data5.Recordset.Fields("i2") = Val(Text9)
Data5.Recordset.Fields("lista") = Val(Text21) ' guarda los hitos de la galería actual
Data5.Recordset.Update ' el último es el mayor
End If
Data1.Recordset.MoveNext
Wend
End Sub
Private Sub Command8_Click()
mayor
End Sub
Autor:
Martín Emilio Sanchez Sifontes
Página anterior | Volver al principio del trabajo | Página siguiente |