formar combinaciones de 7 y 8 numeros con 25 numeros

Iniciado por luis456, 11 Octubre 2014, 11:54 AM

0 Miembros y 1 Visitante están viendo este tema.

luis456

Hola
bien esto de las combinaciones me esta volviendo adicto a lo imposible jejej

tengo 25 números de dos dígitos y como siempre desde el 00 hasta el 99 y quiero hacer o formar grupos de 7 y 8 números donde estén todos los números de entre estos 25 .

ejemplo: 01 09 11 12 14 16 20 24 35 38 40 44 50 58 59 60 68 70 77 80 81 88 90 92 99

alguna idea

Luis

Hoy sabado a programar mm como me gusta jejejej :)
Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

Cita de: luis456 en 11 Octubre 2014, 11:54 AM
hacer grupos de 7 y 8 números donde estén todos los números de entre estos 25 .

¿puedes mostrar como sería el resultado.

Saludos








XresH

#2
Con simple logica basica lo logras, forma arrays redimensionandolos cada vez que le asignas un numero(redim preserve), despues verificas (por si no queres repetidos) y obtenes valores aleatorios de la manera tradicional.

Podes agregarlos a un control cualquiera que maneje listas para luego regir su busqueda y comparacion a traves del index.

Hay varias formas.


Cita de: Eleкtro en 11 Octubre 2014, 16:34 PM
¿puedes mostrar como sería el resultado.

Saludos

Aca esta un supuesto resultado:
Cita de: luis456
"ejemplo: 01 09 11 12 14 16 20 24 35 38 40 44 50 58 59 60 68 70 77 80 81 88 90 92 99"

Saludos.

[ - Si eres programador y quieres que tus proyectos esten en mi blog(con o sin source), consúltame! - ]
Entra A Mi Blog De Programación | | Dudas en este post :| | >>Clic para ir al Post<<

luis456

Cita de: Eleкtro en 11 Octubre 2014, 16:34 PM
¿puedes mostrar como sería el resultado.

Saludos

muestra de numeros a combinar
01 09 11 12 14 16 20   24  35 38 40  44  50  58  59 60 68 70 77 80 81 88 90 92 99


01 09 11 12 14 16 20 24
01 09 11 12 14 16 20 35
01 09 11 12 14 16 20 38
01 09 11 12 14 16 20 40
01 09 11 12 14 16 20 44
01 09 11 12 14 16 20 50
01 09 11 12 14 16 20 58
01 09 11 12 14 16 20 59
01 09 11 12 14 16 20 60
01 09 11 12 14 16 20 68
01 09 11 12 14 16 20 70 hasta el 99

y después sigue con el segundo numero

09 11 12 14 16 20 24 35
09 11 12 14 16 20 24 38

y haci hasta acabar con todos


Luis
Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#4
Código (vbnet) [Seleccionar]
Public Class Form1

   ReadOnly constantValues As New List(Of Integer) From
       {
           1I, 9I, 11, 12, 14, 16, 20, 24, 35, 38,
           40, 44, 50, 58, 59, 60, 68, 70, 77, 80,
           81, 88, 90, 92, 99
       }

   Private Shadows Sub Load() Handles MyBase.Load

       Dim combinations As New List(Of Integer())

       Dim length As Integer = 7
       Dim skipStart As Integer = 0

       Do Until skipStart = (constantValues.Count - length)

           Dim values As List(Of Integer) = constantValues.GetRange(skipStart, length)
           Dim count As Integer = 0

           Do Until count = (constantValues.Count - length - skipStart)

               combinations.Add(values.Concat(constantValues.Skip(skipStart + length + count).Take(1)).ToArray)
               Debug.WriteLine(String.Join(", ", values.Concat(constantValues.Skip(skipStart + length + count).Take(1)).ToArray))

               count += 1

           Loop ' count = (constantValues.Count - length)

           skipStart += 1

       Loop ' skipStart = (constantValues.Count - length)

   End Sub

End Class



Output:
Citar1, 9, 11, 12, 14, 16, 20, 24
1, 9, 11, 12, 14, 16, 20, 35
1, 9, 11, 12, 14, 16, 20, 38
1, 9, 11, 12, 14, 16, 20, 40
1, 9, 11, 12, 14, 16, 20, 44
1, 9, 11, 12, 14, 16, 20, 50
1, 9, 11, 12, 14, 16, 20, 58
1, 9, 11, 12, 14, 16, 20, 59
1, 9, 11, 12, 14, 16, 20, 60
1, 9, 11, 12, 14, 16, 20, 68
1, 9, 11, 12, 14, 16, 20, 70
1, 9, 11, 12, 14, 16, 20, 77
1, 9, 11, 12, 14, 16, 20, 80
1, 9, 11, 12, 14, 16, 20, 81
1, 9, 11, 12, 14, 16, 20, 88
1, 9, 11, 12, 14, 16, 20, 90
1, 9, 11, 12, 14, 16, 20, 92
1, 9, 11, 12, 14, 16, 20, 99

9, 11, 12, 14, 16, 20, 24, 35
9, 11, 12, 14, 16, 20, 24, 38
9, 11, 12, 14, 16, 20, 24, 40
9, 11, 12, 14, 16, 20, 24, 44
9, 11, 12, 14, 16, 20, 24, 50
9, 11, 12, 14, 16, 20, 24, 58
9, 11, 12, 14, 16, 20, 24, 59
9, 11, 12, 14, 16, 20, 24, 60
9, 11, 12, 14, 16, 20, 24, 68
9, 11, 12, 14, 16, 20, 24, 70
9, 11, 12, 14, 16, 20, 24, 77
9, 11, 12, 14, 16, 20, 24, 80
9, 11, 12, 14, 16, 20, 24, 81
9, 11, 12, 14, 16, 20, 24, 88
9, 11, 12, 14, 16, 20, 24, 90
9, 11, 12, 14, 16, 20, 24, 92
9, 11, 12, 14, 16, 20, 24, 99

11, 12, 14, 16, 20, 24, 35, 38
11, 12, 14, 16, 20, 24, 35, 40
11, 12, 14, 16, 20, 24, 35, 44
11, 12, 14, 16, 20, 24, 35, 50
11, 12, 14, 16, 20, 24, 35, 58
11, 12, 14, 16, 20, 24, 35, 59
11, 12, 14, 16, 20, 24, 35, 60
11, 12, 14, 16, 20, 24, 35, 68
11, 12, 14, 16, 20, 24, 35, 70
11, 12, 14, 16, 20, 24, 35, 77
11, 12, 14, 16, 20, 24, 35, 80
11, 12, 14, 16, 20, 24, 35, 81
11, 12, 14, 16, 20, 24, 35, 88
11, 12, 14, 16, 20, 24, 35, 90
11, 12, 14, 16, 20, 24, 35, 92
11, 12, 14, 16, 20, 24, 35, 99

12, 14, 16, 20, 24, 35, 38, 40
12, 14, 16, 20, 24, 35, 38, 44
12, 14, 16, 20, 24, 35, 38, 50
12, 14, 16, 20, 24, 35, 38, 58
12, 14, 16, 20, 24, 35, 38, 59
12, 14, 16, 20, 24, 35, 38, 60
12, 14, 16, 20, 24, 35, 38, 68
12, 14, 16, 20, 24, 35, 38, 70
12, 14, 16, 20, 24, 35, 38, 77
12, 14, 16, 20, 24, 35, 38, 80
12, 14, 16, 20, 24, 35, 38, 81
12, 14, 16, 20, 24, 35, 38, 88
12, 14, 16, 20, 24, 35, 38, 90
12, 14, 16, 20, 24, 35, 38, 92
12, 14, 16, 20, 24, 35, 38, 99

14, 16, 20, 24, 35, 38, 40, 44
14, 16, 20, 24, 35, 38, 40, 50
14, 16, 20, 24, 35, 38, 40, 58
14, 16, 20, 24, 35, 38, 40, 59
14, 16, 20, 24, 35, 38, 40, 60
14, 16, 20, 24, 35, 38, 40, 68
14, 16, 20, 24, 35, 38, 40, 70
14, 16, 20, 24, 35, 38, 40, 77
14, 16, 20, 24, 35, 38, 40, 80
14, 16, 20, 24, 35, 38, 40, 81
14, 16, 20, 24, 35, 38, 40, 88
14, 16, 20, 24, 35, 38, 40, 90
14, 16, 20, 24, 35, 38, 40, 92
14, 16, 20, 24, 35, 38, 40, 99

16, 20, 24, 35, 38, 40, 44, 50
16, 20, 24, 35, 38, 40, 44, 58
16, 20, 24, 35, 38, 40, 44, 59
16, 20, 24, 35, 38, 40, 44, 60
16, 20, 24, 35, 38, 40, 44, 68
16, 20, 24, 35, 38, 40, 44, 70
16, 20, 24, 35, 38, 40, 44, 77
16, 20, 24, 35, 38, 40, 44, 80
16, 20, 24, 35, 38, 40, 44, 81
16, 20, 24, 35, 38, 40, 44, 88
16, 20, 24, 35, 38, 40, 44, 90
16, 20, 24, 35, 38, 40, 44, 92
16, 20, 24, 35, 38, 40, 44, 99

20, 24, 35, 38, 40, 44, 50, 58
20, 24, 35, 38, 40, 44, 50, 59
20, 24, 35, 38, 40, 44, 50, 60
20, 24, 35, 38, 40, 44, 50, 68
20, 24, 35, 38, 40, 44, 50, 70
20, 24, 35, 38, 40, 44, 50, 77
20, 24, 35, 38, 40, 44, 50, 80
20, 24, 35, 38, 40, 44, 50, 81
20, 24, 35, 38, 40, 44, 50, 88
20, 24, 35, 38, 40, 44, 50, 90
20, 24, 35, 38, 40, 44, 50, 92
20, 24, 35, 38, 40, 44, 50, 99

24, 35, 38, 40, 44, 50, 58, 59
24, 35, 38, 40, 44, 50, 58, 60
24, 35, 38, 40, 44, 50, 58, 68
24, 35, 38, 40, 44, 50, 58, 70
24, 35, 38, 40, 44, 50, 58, 77
24, 35, 38, 40, 44, 50, 58, 80
24, 35, 38, 40, 44, 50, 58, 81
24, 35, 38, 40, 44, 50, 58, 88
24, 35, 38, 40, 44, 50, 58, 90
24, 35, 38, 40, 44, 50, 58, 92
24, 35, 38, 40, 44, 50, 58, 99

35, 38, 40, 44, 50, 58, 59, 60
35, 38, 40, 44, 50, 58, 59, 68
35, 38, 40, 44, 50, 58, 59, 70
35, 38, 40, 44, 50, 58, 59, 77
35, 38, 40, 44, 50, 58, 59, 80
35, 38, 40, 44, 50, 58, 59, 81
35, 38, 40, 44, 50, 58, 59, 88
35, 38, 40, 44, 50, 58, 59, 90
35, 38, 40, 44, 50, 58, 59, 92
35, 38, 40, 44, 50, 58, 59, 99

38, 40, 44, 50, 58, 59, 60, 68
38, 40, 44, 50, 58, 59, 60, 70
38, 40, 44, 50, 58, 59, 60, 77
38, 40, 44, 50, 58, 59, 60, 80
38, 40, 44, 50, 58, 59, 60, 81
38, 40, 44, 50, 58, 59, 60, 88
38, 40, 44, 50, 58, 59, 60, 90
38, 40, 44, 50, 58, 59, 60, 92
38, 40, 44, 50, 58, 59, 60, 99

40, 44, 50, 58, 59, 60, 68, 70
40, 44, 50, 58, 59, 60, 68, 77
40, 44, 50, 58, 59, 60, 68, 80
40, 44, 50, 58, 59, 60, 68, 81
40, 44, 50, 58, 59, 60, 68, 88
40, 44, 50, 58, 59, 60, 68, 90
40, 44, 50, 58, 59, 60, 68, 92
40, 44, 50, 58, 59, 60, 68, 99

44, 50, 58, 59, 60, 68, 70, 77
44, 50, 58, 59, 60, 68, 70, 80
44, 50, 58, 59, 60, 68, 70, 81
44, 50, 58, 59, 60, 68, 70, 88
44, 50, 58, 59, 60, 68, 70, 90
44, 50, 58, 59, 60, 68, 70, 92
44, 50, 58, 59, 60, 68, 70, 99

50, 58, 59, 60, 68, 70, 77, 80
50, 58, 59, 60, 68, 70, 77, 81
50, 58, 59, 60, 68, 70, 77, 88
50, 58, 59, 60, 68, 70, 77, 90
50, 58, 59, 60, 68, 70, 77, 92
50, 58, 59, 60, 68, 70, 77, 99

58, 59, 60, 68, 70, 77, 80, 81
58, 59, 60, 68, 70, 77, 80, 88
58, 59, 60, 68, 70, 77, 80, 90
58, 59, 60, 68, 70, 77, 80, 92
58, 59, 60, 68, 70, 77, 80, 99

59, 60, 68, 70, 77, 80, 81, 88
59, 60, 68, 70, 77, 80, 81, 90
59, 60, 68, 70, 77, 80, 81, 92
59, 60, 68, 70, 77, 80, 81, 99

60, 68, 70, 77, 80, 81, 88, 90
60, 68, 70, 77, 80, 81, 88, 92
60, 68, 70, 77, 80, 81, 88, 99

68, 70, 77, 80, 81, 88, 90, 92
68, 70, 77, 80, 81, 88, 90, 99

70, 77, 80, 81, 88, 90, 92, 99

Saludos.








luis456

Gracias elektro

si funciona como queria esta genial :) ahora estoy tratando de mostrarlo en un listbox pero no me sale, ademas de que tengo que cambiar o introducir  los valores de  " constantValues" los números a mano a través de texbox pero eso creo resolverlo jejej


Código (vbnet) [Seleccionar]
Public Class Form1

    ReadOnly constantValues As New List(Of Integer) From
        {
            1I, 9I, 11, 12, 14, 16, 20, 24, 35, 38,
            40, 44, 50, 58, 59, 60, 68, 70, 77, 80,
            81, 88, 90, 92, 99
        }

    Private Shadows Sub Load() Handles MyBase.Load

        Dim combinations As New List(Of Integer())

        Dim length As Integer = 7
        Dim skipStart As Integer = 0

        Do Until skipStart = (constantValues.Count - length)

            Dim values As List(Of Integer) = constantValues.GetRange(skipStart, length)
            Dim count As Integer = 0

            Do Until count = (constantValues.Count - length - skipStart)

                combinations.Add(values.Concat(constantValues.Skip(skipStart + length + count).Take(1)).ToArray)
                Debug.WriteLine(String.Join(", ", values.Concat(constantValues.Skip(skipStart + length + count).Take(1)).ToArray))

                count += 1

            Loop ' count = (constantValues.Count - length)

            skipStart += 1

        Loop ' skipStart = (constantValues.Count - length)

        ListBox1.Items.AddRange(????????.Cast(Of Object).ToArray) <-----no y no

    End Sub

End Class



saludos
Luis
Que tu sabiduria no sea motivo de Humillacion para los demas

luis456

AAAA GGGG no puedo pasarlo a un listbox ? he probado con todas las variables y nada

luis
Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#7
Cita de: luis456 en 12 Octubre 2014, 16:28 PMAAAA GGGG no puedo pasarlo a un listbox ? he probado con todas las variables y nada

Hace poco tuviste el mismo problema, como añadir una lista a un listbox... y te mostré la solución, de hecho se supone que ese código lo utilizaste para tu aplicación de los números así que no entiendo como puedes tener el mismo problema por segunda vez,
yo no estoy dispuesto a hacerle el trabajo a alguien para que ni me escuche ni aprenda, puedes buscar entre tus publicaciones en el foro y/o en tus códigos del pasado y hallarás la solución al problema.

Saludos








luis456

Tu creees que no he estado en ello :) el ejemplo que me dices es este ,pero de verdad que no logro hacerlo andar


Código (vbnet) [Seleccionar]
combinations.ForEach(Sub(comb As List(Of Integer))

                           ' Convierto la Lista a 'String', le añado los ceros, y añado el string formateado al Listbox.
                           ListBox1.Items.Add(String.Join(", ",
                                                          From value As String In comb
                                                          Select If(value.Length = 1I,
                                                                    value.Insert(0I, "0"c),
                                                                    value)))
                           ListBox1.Sorted = True



luis
Que tu sabiduria no sea motivo de Humillacion para los demas

luis456

Otra ves al ataque :) bien tratando con los ejemplos que me diste la otra ves y no doy pie con bola he cambiado todas las variables y nada no me aclaro cual es la que debo mostrar en el listbox


Código (vbnet) [Seleccionar]
Dim combinations As New List(Of Integer()) <---creo esta es la que tiene las combis
Dim length As Integer = 7 <----------esta es la determina las cantidad
Dim skipStart As Integer = 0 <----------NPI



Estos son las  formas que me enseñaste

Combos.ForEach(Sub(comb As List(Of Integer))
                           ListBox1.Items.Add(String.Join(", ", comb))
                       End Sub)

---------------------------------------------------------------------------


ListBox1.Items.AddRange(
            (From comb As List(Of Integer) In Combos
             Select String.Join(", ", comb)).ToArray
         )



-------------------------------------------------------------------------------------

Combos.ForEach(Sub(comb As List(Of Integer))

                           ' Convierto la Lista a 'String', le añado los ceros, y añado el string formateado al Listbox.
                           ListBox1.Items.Add(String.Join(", ",
                                                          From value As String In comb
                                                          Select If(value.Length = 1I,
                                                                    value.Insert(0I, "0"c),
                                                                    value)))

                       End Sub)
Que tu sabiduria no sea motivo de Humillacion para los demas