Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - luis456

#1
Cita de: Serapis en 13 Mayo 2021, 21:28 PM
He generado todas las 13.983.816 combinaciones de la bonoloto y las he comprimido:

https://workupload.com/file/JbvBDXrre3F  1'09Mb. (ojo descomprimido ocupa 273Mb. aprox.)

Gracias Serapis

Se me ha complicado la semana y se suponía que hoy me iba a casa, todavía no he probado al 100 % el programa ya que ando con el portátil y es un poco lento ,se me ocurren varias cosas para poder filtrar los resultados (tengo muchos códigos de otros programas sobre lo mismo) ejemplo filtrar tres números iguales (quiero decir a los resultados) y , filtrar primeros tres numeros iguales resultados anteriores , filtrar resultados seguidos ( 1 2 3 4 5 6 ) ( 41 4 2 43 44 45 46 ) y mas cosas .la bonoloto ya tiene años jugando todos los días y ya hay una base de datos con los que se puede hacer varias pruebas .hay que simplemente buscar coincidencias matemáticas ya que esto es un negocio de algunos  y todo lo que use un ordenador o pase por un programa este hace lo que el programador dice jejjee .ya que hay resultados que son muy " extraños " yo que te lo digo que tengo desde los dos años (esa es otra historia ) tocando las loterías .

Hablamos

Luis
#2
 ;-) ;-) ;-) ;-)

Perfecto Serapis funciona de maravilla te has brillado con este programa, aunque claro es inasumible apostar tal cantidad de apuestas ,he echo algunas apuestas "Virtuales " y si las hubiéramos jugados ya seriamos millonarios  :silbar:  pero no es motivo de desesperanza ya que es cuestión de aplicar variados filtros, algo de estadística y otros métodos personales  (aunque esta comprobado que las estadísticas para las loterías no sirven, porque será ??? )

Bien ahora es cuestión de hacer un menú ,guardar apuestas generadas por ejemplo para poder comparar resultados y aciertos con el sorteo (para no hacerlo a mano para eso esta la programación jejje) quien habrá dicho eso  :rolleyes: algunos filtros de reducción de apuestas etc ete.

Bueno a pesar de que todavía ando con los efectos de la vacuna (me callo fatal esa *****) ya creo que no muero y pienso que este programa vale la pena hacerlo muy completo y puede ser un buen programa y muy eficaz solo es cuestión de ideas y de cálculos .

Para el dia de hoy este post lo han visto 4,360 veces me imagino que hay expectativas sobre el desarrollo del programa jejje solo que no veo aportes e ideas.

Bueno seguiré probándolo y vemos que tal

De nuevo Gracias Serapis

ya te contare

Luis








#3
Hola Serapis

Bueno pase mala noche ya que me dio fiebre esta vacuna y ahora tengo un super catarro :( me he puesto un rato con el programa pero no me aclaro que es lo que tengo que hacer o poner para armarlo pensé me seria fácil jeje .me lo llevo al trabajo a ver si por la noche lo puedo terminar

saludos
Luis
#4
Cita de: Serapis en  8 Mayo 2021, 21:13 PM
Tranquilo... esto no es una red social, donde la gente (parece) exigir que le contesten no tardando más de no se qué cuanto tiempo (so pena de enfadarse). Cada uno a su ritmo...

Hice al final también el filtrado para los de 6_0, de dos maneras distintas...
Una de ellas simplemente ignora añadir al listbox, las entradas ilegales (al final quedna así alrededor de la mitad), el otro modo de fitrado es tratarlo como lo que son solo 5 dígitos, arroja unas 15500 combinaciones, pero no lo veo interesante por que contiene así solo 5 combinaciones (pero quien sabe si un oquisiera aparte poner el 6º manualmente).

Mañana lo comprimo en un zip y lo subo a alguna página de descarga...

Gracias y para esta Hora todavía sigo vivo 😃 ya veremos mañana
saludos
Luis



#5
Gracias Serapis

Como te comentado trabajo fuera toda las semana y para mas hoy me han vacunado contra el covid y me tiene un poco nervioso jejej me vacunaron con la estraneca o astranaca o como se llame  🤣 esperare hasta mañana para probar tus códigos (aunque no he trabajado con las clases aparte , pienso que no será difícil ,recuerda que solo soy aficionado pero me afano ya que me encanta la programación  y de simple como es el titulo del post ( Ejercicio básico de combinaciones )  esto ya es un bicho grande pero yo encantado ya que he visto mas posibilidades de mejorar los cálculos para encima otros sistemas de loterías pero ese es otro tema (para depues jejej)

te aviso
Luis
#6
Bien la primera parte esta bien, a si mismo es pero en la parte que me comentas que debe aparecer dos veces el mismo digito no podrá ser ya que son números que no se repiten  y además se prestaría a confusión ,si no se puede hacer vamos a dejarlo por ahora (después miramos a hacerlo sin tener que meter dos veces el mismo digito ,por lo demás esta bien a si es como debe funcionar,

Saludos y gracias
Luis



#7
ien Serapis tratare de explicarlo al pelo ya que tienes razon,esta desde el princio mal planteado ,

bueno la idea es poder combinar 6 digitos iniciales que van desde el 0 hasta el 9 (0,1,2,3,4,5,6,7,8,9 ), bien de estos numeros
que yo escojo segun una ecuacion matematica (mia) 6 digitos los cuales yo combino segun la tematica de apuesta
de la primitiva que ya sabemos es hasta el 49, con estos 6 digitos se deben formar los numeros (decenas) que componen el sorteo

ejemplo : introducimos  ( 1, 2, 3, 4, 5, 6 ) con estos numeros se formarian los siguientes numeros:
12 13 14 15 16
21 23 24 25 26
31 32 34 35 36
41 42 43 45 46 <----tomariamos hasta aca los numeros para combinarlos entre si formando grupos de 6
51 52 53 54 56 <----ya estos no se toman en cuenta ( se eliminan del calculo)
61 62 63 64 65 <----ya estos no se toman en cuenta ya que se salen del rango max (49)

Seguimos: del grupo de arriba tomariamos los numeros desde el 12 hasta el 46, ya que como sabemos las loteria llegan hasta el 49 y
habiendo excluido el 51 hasta el 65 nos quedarian desde el 12 hasta el 46 y esos son los numeros que vamos a combinar

vamos a calcular otro ejemplo ( 1,3,4,5,7,9 ) se deben de formar los siguientes numeros

13,14,15,17,19
31,34,35,37,39
41,43,45,47,49
y con estos numeros formar las combinaciones posibles de 6

Muy importante es lo siguiente debe tomar en cuenta cuando se introducen los 6 digitos que los digitos( 0 1 2 3 y 4 ) forman las decenas
y que se deben combinar con el resto de los digitos y entre si para formar lo que ya sabemos es la forma de juego de la loteria
primitiva y bonoloto.

gracias de antemano por tu enorme paciencia :)

Luis
#8
UFFFF JAJJAJA

Bueno tendré que imprimir esto y llevármelo al trabajo a ver si asimilo todo y muchas gracias por tu paciencia ,pero te explico estoy haciendo pruebas con varios ejemplos y en una de ellas pongo 2 3 4 6 7 8 y no me salen combinaciones con el cuatro si de terminal estilo 24 34 pero no me salen con el cuatro 42 43 etc etc . y lo de las 210 combinaciones no es limitante se supone que con otro digito saldrán mas combinaciones ,no te preocupes por lo demás que aunque no sea experto ,se como hacer que guarde, imprima libere las variables etc ,

esto lo puse d prisa y corriendo tengo muchos modelos a usar pero me vale para ir viendo como funciona el codigo
Código (vbnet) [Seleccionar]
' FUNCION LIMPIAR LISTBOSX...
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        For Each obj As Control In Me.Controls
            If (TypeOf obj Is TextBox) Then
                obj.Text = ""
            End If
            If (TypeOf obj Is GroupBox) Then
                For Each caja As Control In obj.Controls
                    If (TypeOf caja Is TextBox) Then
                        caja.Text = ""
                    End If
                Next
            End If
            ListBox1.Items.Clear()



Y claro que tomare en cuenta tus métodos pero ya tenia mas de dos años sin programar y lo mío es autodidacta aunque no se crea jejje (eso que estudie Cobol y Pascal ) cuando los Dinosaurios no tenían ni disco duro 😲

es que no se como pasar una toma de pantalla para que veas que es lo que hago,  porque no entiendo si pongo 1 3 4, 6 7 8 no me salen combinaciones con el cuatro adelante ???

13
14
31
34
41
43


Saludos
Luis





















#9
Gracias Serapis por tu ayuda he estado probando el código y bien vamos Bien jejje pero (siempre hay un pero ) no quiero que me hagas todo el trabajo ,solo explícame como funcionan algunas cosas para yo modificarlo , en el ejemplo anterior usas los números que pongo de ejemplo  " 2, 3, 5,6,8, 9 " pero estos números cambian después de cada sorteo (después os explicare como los saco) según voy entiendo el código este toma solo los dos primeros y los combina con el resto ,bien el tema es que como sabemos las decenas son hasta el cuatro y a veces tendría que introducir ejemplo ( 1 , 2 ,4 - 5,7,8 ) y ahora el programa para las combinaciones no toma el cuatro solo el 1 y 2 , he puesto un botón para limpiar y poder hacer pruebas y el código va de maravilla ,pongo el código y algunas observaciones  a ver que te parece ?

Código (vbnet) [Seleccionar]
Imports System.Text



Public Class Form1
    Private Permuta As New Permutaciones
    Private Decenas(2) As Byte, Unidades(4) As Byte


    ' El botón de la interfaz...
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Nums() As String, txt As String
        Dim k As UInt16

        txt = TextBox1.Text.Replace(" ", "") ' <<<<<<<<<<<<<<   ACA CAMBIAN LOS NUMEROS NUNCA SON LOS MISMOS ...Y DEBE TOMAR HASTA EL DIGITO 4  SABEMOS QUE LAS DECENAS SON 0 1 2 3 Y 4
        Nums = txt.Split(",")
        If (Nums.Length = 6) Then
            ' crear los parámetros para la funcion de Transformacion:
            Decenas(0) = System.Byte.Parse(Nums(0))
            Decenas(1) = System.Byte.Parse(Nums(1))
            For k = 2 To 5
                Unidades(k - 2) = System.Byte.Parse(Nums(k))
            Next

            ListBox1.Items.Clear()
            For j = 0 To Permuta.Cantidad - 1
                ListBox1.Items.Add(Permuta.Transforma(j, Decenas, Unidades))
            Next
            Label1.Text = "Cantidad en lista: " & ListBox1.Items.Count.ToString
        Else
            MessageBox.Show("No, no no... Debe haber 6 y solo 6 numeros, separados por 1 coma...")
        End If
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub

    ' FUNCION LIMPIAR LISTBOSX...
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        For Each obj As Control In Me.Controls
            If (TypeOf obj Is TextBox) Then
                obj.Text = ""
            End If
            If (TypeOf obj Is GroupBox) Then
                For Each caja As Control In obj.Controls
                    If (TypeOf caja Is TextBox) Then
                        caja.Text = ""
                    End If
                Next
            End If
            ListBox1.Items.Clear()


        Next
    End Sub

    Private Class Permutaciones
        Const MAX_COMBINAS As UInt16 = 210
        Private s_Combinas(MAX_COMBINAS) As UInt32

        Public ReadOnly Property Cantidad As UInt16
            Get
                Return MAX_COMBINAS
            End Get
        End Property

        Public Function Transforma(ByVal Indice As UInt16, ByVal Dec() As Byte, ByVal Uni() As Byte) As String
            Dim permuta As UInt32 = s_Combinas(Indice)
            Dim s As String = "", valor As String = ""
            Dim x As Byte = 0, k As Byte

            For k = 0 To 5
                x = (permuta Mod 10)
                permuta \= 10

                Select Case x
                    ' forma C en que quedan ordenados más aproximado al ejemplo de muestra...
                    Case 0 : x = ((Dec(0) * 10) + Dec(1))
                    Case 1 To 4 : x = ((Dec(0) * 10) + Uni(x - 1))
                    Case 5 To 8 : x = ((Dec(1) * 10) + Uni(x - 5))
                    Case 9 : x = ((Dec(1) * 10) + Dec(0))

                        ' Otra forma B en que quedan ordenados...
                        'Case 0 : x = ((Dec(0) * 10) + Dec(1))
                        'Case 1 : x = ((Dec(1) * 10) + Dec(0))
                        'Case 2 To 5 : x = ((Dec(0) * 10) + Uni(x - 2))
                        'Case 6 To 9 : x = ((Dec(1) * 10) + Uni(x - 6))

                        ' Otra forma A en que quedan ordenados...
                        'Case 0 To 3 : x = ((Dec(0) * 10) + Uni(x))
                        'Case 4 To 7 : x = ((Dec(1) * 10) + Uni(x - 4))
                        'Case 8 : x = ((Dec(0) * 10) + Dec(1))
                        'Case 9 : x = ((Dec(1) * 10) + Dec(0))
                End Select

                If (x < 10) Then s = "0" & x.ToString Else s = x.ToString
                valor = (s & ", ") & valor
            Next

            Return valor
        End Function


        ' Genera todas las permutaciones posibles (210) en formato numerico.
        ' Alfabeto = X,Y,   R,S,T,U
        ' solo hay 8 pares de combinaciones: Resultado de combinar cada uno del GrupoDec con cada uno del GrupoUni
        '   XR, XS, XT, XU  (0,1,2,3)
        '   YR, YS, YT, YU  (4,5,6,7)
        '  Más las 2 combinaciones de intercambiar de posicion los valores del 'grupoDec'
        '   XY, YX          (8,9) 
        ' Cada par de esos 10 se enumeran ahora como 0-9 (usando una solo caracter)
        ' Ahora el numero de combinaciones con esos 10 pares tomados de 6 en 6 son: 210
        Public Sub New()
            Dim combina As UInteger = 12345       ' combinacion inicial -----------NO ENTIENDO ESTO YA QUE LOS NUMEROS DE LAS DECENAS NO PUEDEN PASAR DEL 4
            Dim final As UInteger = 456789           '  combinación final --------------???????????????
            Dim k As UInt16
            Dim digitos(0 To 5) As Byte, n As Byte  ' control de límite de cada dígito.

            For k = 0 To 5
                digitos(k) = k
            Next

            k = 0
            Do
                s_Combinas(k) = combina
                If (digitos(5) = 9) Then
                    n = 4
                    Do While digitos(n) = digitos(n + 1) - 1
                        n -= 1
                    Loop
                    digitos(n) += 1
                    For n = n + 1 To 5
                        digitos(n) = digitos(n - 1) + 1
                    Next
                    combina = 0
                    For n = 0 To 5
                        combina += digitos(n) * (10 ^ (5 - n))
                    Next
                Else
                    combina += 1 : digitos(5) += 1
                End If
                k += 1
            Loop While (combina < final)
            s_Combinas(k) = combina
        End Sub

        'Public ReadOnly Property Permuta(ByVal X As UInt16)
        '    Get
        '        Return s_Combinas(X)
        '    End Get
        'End Property
    End Class

    ' Mostras la lista de permutaciones en el listbox.... va en conjunto con la propiedad 'Permuta' de la clase permutaciones.
    'Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    '    Dim k As UInt16, j As UInt32, s As String = ""

    '    ListBox1.Items.Clear()
    '    For k = 0 To Permuta.Cantidad - 1
    '        j = (Permuta.Permuta(k))
    '        If (j < 123456) Then s = "0" & j.ToString Else s = j.ToString
    '        ListBox1.Items.Add(s)
    '    Next
    'End Sub
End Class



Despues los adornos se los pongo jejeje

saludos
Luis



#10
Voy a tratar de explicarlo (siempre me pasa lo mismo yo se lo que quiero pero no se explicarlo)

yo tengo  6 dígitos  ejemplo  2 3 5 6 8 9 <--- esos números deberán de formar parejas de esta forma :

de este grupo se toma el 2 y 3 solamente y se combinan con el resto :  5 6 8 9  formando pares de dígitos :

estos son los números resultantes

23  25  26 28 29
32  35  36 38 39

Resultado de esa combinación es esta (no las pongo todas son bastantes )

23,25,26,28,29,32
23,25,26,28,29,35
23,25,26,28,29,36
23,25,26,28,29,38
23,25,26,28,29,39
23,25,26,28,32,35
23,25,26,28,32,36
23,25,26,28,32,38
23,25,26,28,32,39
23,25,26,28,35,36
23,25,26,28,35,38

Como ven solo no salen combinaciones con el cuatro ni el uno ni cero ya que no salen en los números para combinar ( 2 3 5 6 8 9 )

saludos
Luis