formar combinaciones de 7 y 8 numeros con 25 numeros

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

0 Miembros y 8 Visitantes están viendo este tema.

luis456


1) Por cierto, no quiero ver marranadas, ya me estás separando 'Luislibrary' de la Class 'Form1', crea un archivo de Class individual en el projecto y ahí copias y pegas el namespace 'LuisLibrary' y vas añadiendo tus distintas "utilidades" para usarlas en el futuro.


estoy en pruebas ya me haré mi archivo de rutinas :)

Saludos.
Que tu sabiduria no sea motivo de Humillacion para los demas

luis456

jejej de nuevo al ataque

ahora funciona y ya he probado a modificar algunas cosillas como por ejemplo el orden en

Código (vbnet) [Seleccionar]
  .First = items(0),
.Second = items(2)


lo que no entiendo es como hacer que en ves de dos,me muestre combinaciones de mas de dos números por ejemplo  " 02 09 10 15 " , ahora solo me saca en la ventana " 02 09 " y en otra  " 10 15 " y en otra  "21 28 "  etc. en una sola ventana,
Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#42
Cita de: luis456 en 24 Octubre 2014, 19:45 PMlo que no entiendo es como hacer que en ves de dos,me muestre combinaciones de mas de dos números por ejemplo  " 02 09 10 15 " , ahora solo me saca en la ventana " 02 09 " y en otra  " 10 15 "


Tu tienes esto:
Lista
   · Sub-Lista
      · {2, 9}
   · Sub-Lista
      · {10, 15}


Y lo que quieres conseguir es esto (aparentemente, ya que no está muy claro lo que has dicho) :
Lista
   · {2, 9, 10, 15}



¿Qué tienes que hacer?, unir las sub-listas en una sola lista.

¿Cómo hacerlo?, puedes hacerlo con el método que te mostré, JoinEnumerables, el cual desarrollé para que realizase esa tarea en específico.


Saludos!








luis456

Cita de: Eleкtro en 24 Octubre 2014, 20:30 PM

Tu tienes esto:
Lista
   · Sub-Lista
      · {2, 9}
   · Sub-Lista
      · {10, 15}


Y lo que quieres conseguir es esto (aparentemente, ya que no está muy claro lo que has dicho) :
Lista
   · {2, 9, 10, 15}



¿Qué tienes que hacer?, unir las sub-listas en una sola lista.

¿Cómo hacerlo?, puedes hacerlo con el método que te mostré, JoinEnumerables, el cual desarrollé para que realizase esa tarea en específico.


Saludos!


Hola asta ahora no he podido ver nada ( catarrazooo)  me podrias enseñar algun ejemplo con mayores detalles :)

luis

Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

Cita de: luis456 en 28 Octubre 2014, 10:25 AMHola asta ahora no he podido ver nada ( catarrazooo)  me podrias enseñar algun ejemplo con mayores detalles :)

Lo siento Luis pero considero que ya he invertido bastante tiempo en mostrarte decenas de ejemplos, no se que más mostrarte ya, no soy un prefesor, y siento que cada ejemplo que escribo no sirve para nada al final por que o bien no lo usas o no hallas el modo.

Ponte a desarrollar tu aplicación/código y si tienes alguna duda específica, pregunta, con detalles.

Saludos








luis456

Que tu sabiduria no sea motivo de Humillacion para los demas

luis456

Otro rollo jeje

este codigo me entrega los numeros ordenados de menor a mayor funciona bien,pero depues de modificarlo me entrega los combinaciones desordenadas,he probado con ordenar la variable y el listbox pero no se que mas ,

Código (vbnet) [Seleccionar]
codigo original

Public Class Form1
    Dim combinations As Integer
    Dim seta As Integer

    ReadOnly constantValues As New List(Of Integer) From
        {
            2, 3, 5I, 6I, 7I, 8I, 9I,
11, 13, 14, 17, 18, 19,
20, 21, 24, 25, 26, 29,
30, 31, 33, 44, 48
        }

    Private Shadows Sub Load() Handles MyBase.Load

        Dim combinations As New List(Of List(Of Integer))
        Dim length As Integer = 9
        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)).ToList)

                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)
        combinations.ForEach(Sub(combination As List(Of Integer))
                                 ListBox1.Items.Add(String.Join(", ", From value As Integer In combination
                                                                      Select If(value.ToString.Length = 1I,
                                                                                value.ToString.Insert(0I, "0"c),
                                                                                value.ToString)))
                             End Sub)



    End Sub




ahora como he modificado la variable " constantValues "  por constantValues.AddRange(Resultss.ToArray()) para usar
los numeros de " resultss " y estos numeros cambian no son fijos


Código (vbnet) [Seleccionar]
codigo modificado

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click


        Dim combinations As New List(Of List(Of Integer))
        Dim length As Integer = 9
        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)).ToList)

                '  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)


        combinations.ForEach(Sub(combination As List(Of Integer))
                                 ListBox2.Items.Add(String.Join(", ", From value As Integer In combination
                                                                      Select If(value.ToString.Length = 1I,
                                                                                value.ToString.Insert(0I, "0"c),
                                                                                value.ToString)))



                             End Sub)


y me entrega las combinaciones desordenadas de esta forma


03, 05, 12, 13, 30, 08, 27, 28, 14, 26
03, 05, 12, 13, 30, 08, 27, 28, 14, 31
03, 05, 12, 13, 30, 08, 27, 28, 14, 32
03, 05, 12, 13, 30, 08, 27, 28, 14, 11
03, 05, 12, 13, 30, 08, 27, 28, 14, 17
03, 05, 12, 13, 30, 08, 27, 28, 14, 33
03, 05, 12, 13, 30, 08, 27, 28, 14, 37
03, 05, 12, 13, 30, 08, 27, 28, 14, 38






Luis




Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#47
Cita de: luis456 en 31 Octubre 2014, 14:56 PM

Código (vbnet,3) [Seleccionar]
       Do Until skipStart = (constantValues.Count - length)
           ...
           combinations.Add(values.Concat(constantValues.Skip(skipStart + length + count).Take(1)).ToList)
           ...
       Loop


List(Of T).Sort Method - MSDN

Nota: Es un método, no una función, por lo tanto debes asignar la lista a una variable, la ordenas utilizando el método indicado, y ya puedes agregar la lista ordenada a la colección de listas.

Saludos








luis456

Cita de: Eleкtro en 31 Octubre 2014, 15:32 PM

List(Of T).Sort Method - MSDN

Nota: Es un método, no una función, por lo tanto debes asignar la lista a una variable, la ordenas utilizando el método indicado, y ya puedes agregar la lista ordenada a la colección de listas.

Saludos


Probando me da este error no se si te entendi bien pero te muestro el codigo

Excepción del tipo 'System.OutOfMemoryException' en System.Core.dll





Código (vbnet) [Seleccionar]

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

                combinations.Add(values.Concat(constantValues.Skip(skipStart + length + count).Take(1)).ToList)

                '  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)


        combinations.ForEach(Sub(combination As List(Of Integer))
                                 ListBox2.Items.Add(String.Join(", ", From value As Integer In combination
                                                                      Select If(value.ToString.Length = 1I,
                                                                                value.ToString.Insert(0I, "0"c),
                                                                                value.ToString)))



                             End Sub)




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

Eleкtro

#49
No veo que hayas hecho nada de lo que te dije en ese código.

Aparte, ¿me vas a decir en que intrucción te da el error?.

En el código que puse arriba, resalté solo 1 linea y es en la que te tienes que fijar (es la misma que está en tu código, tienes que sacarla de ahi meterla en una variable, ordenarla y luego procedes como ya expliqué), por si acaso te digo que no vayas a cambiar de posición estas lineas:
Citar
Código (vbnet) [Seleccionar]
         ' Do Until count = (constantValues.Count - length - skipStart)
          Do Until skipStart = (constantValues.Count - length)

En resumen, deja el código como lo tenias... solo tienes que asignar la lista a una variable y usar el método List.Sort... la lista la tienes en la linea que resalté en el código de mi ultimo comentario...

saludos