Combis :(

Iniciado por luis456, 18 Marzo 2016, 19:22 PM

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

luis456

Cita de: Lekim en 20 Marzo 2016, 16:05 PM
hola de nuevo...

Bueno, creo que la pregunta está mas que respondida, pero tras revisar los comentarios me di cuenta que la secuencia de mi código, aunque lógica no era la que demandabas, así que pongo la rectificación y fiel a mi estilo ya que hay códigos que se entienden mejor que otros.

Código (vbnet) [Seleccionar]

      Dim NumElementos As IEnumerable(Of Integer) = {1, 3, 84, 99, 868}, Secuencia As String = Nothing
       Dim nu As Integer = 0
       For Each N As Integer In NumElementos : nu += 1
           For I As Integer = nu To NumElementos.Count - 1
               If N <> NumElementos(I) Then _
                   Secuencia += String.Format("{0:00}, {1:00}{2}", N, NumElementos(I), Environment.NewLine)
           Next
       Next
       MessageBox.Show(Secuencia)


Devuelve
01, 03
01, 84
01, 99
03, 84
03, 99
84, 99

( he reducido la secuencia pero puedes poner tantos números como quieras)


O bien:

Código (vbnet) [Seleccionar]

     Dim NumElementos As IEnumerable(Of Integer) = {1, 3, 84, 99}, Secuencia As String = Nothing
       For Each N As Integer In NumElementos
           For I As Integer = 0 To NumElementos.Count - 1
               If N <> NumElementos(I) Then _
                   Secuencia += String.Format("{0:00}, {1:00}{2}", N, NumElementos(I), Environment.NewLine)
           Next
       Next
       MessageBox.Show(Secuencia)


Devuelve:
01, 03
01, 84
01, 99
03, 01
03, 84
03, 99
84, 01
84, 03
84, 99
99, 01
99, 03
99, 84



S2s


Perfecto y gracias por tu ayuda, ya que sin querer me ayudaste con el primer código que me pusiste con otra duda que tenia diferente a la planteada, super agradecido a ti ya a elektro por tan valiosa colaboración aunque siempre con elektro da miedo preguntar jejejje es muy regañón  (el sabe que es con aprecio jejej )

Dare por solucionado este post y espero que le valga a otros muchos estos códigos ya que realmente son combinatorias y suelen ser útiles sobre todo para los que trabajan con Claves  ::)


Saludos
Luis







Que tu sabiduria no sea motivo de Humillacion para los demas

Lekim

#11
De nada,

bueno en el código que has citado se me coló un 868,  :P porque estaba haciendo pruebas, por si acaso. En cuyo caso devolvería..

01, 03
01, 84
01, 99
01, 868
03, 84
03, 99
03, 868
84, 99
84, 868
99, 868

S2s




Además... que sobra la comparación  If N <> NumElementos ... en la secuencia del primer ejemplo. (Esto me ha ocurrido porque el primer ejemplo lo obtuve a partir del segundo, jeje)

Código (vbnet) [Seleccionar]
        Dim NumElementos As IEnumerable(Of Integer) = {1, 3, 84, 99}, Secuencia As String = Nothing
        Dim nu As Integer = 0
        For Each N As Integer In NumElementos : nu += 1
            For I As Integer = nu To NumElementos.Count - 1
                Secuencia += String.Format("{0:00}, {1:00}{2}", N, NumElementos(I), Environment.NewLine)
            Next
        Next
        MessageBox.Show(Secuencia)