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

#91
Cita de: Lekim en 25 Marzo 2016, 20:04 PM
Chacho has repetido números:
{2, 6, 10, 11, 17, 20, 24, 34, 38, 39, 40, 41, 41, 42, 43, 44, 45, 46, 47, 50}

Quita ese número repetido (41)y verás que te salen 969 XD

Código (vbnet) [Seleccionar]
       Dim Elementos As IEnumerable(Of Integer) = {2, 6, 10, 11, 17, 20, 24, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50}
       Dim EleX As Integer = 0
       Dim EleX2 As Integer = 0
       ListBox1.Items.Clear() 'Limpia el ListBox
       For I1 As Integer = 0 To Elementos.Count - 1 : EleX += 1
           For I2 As Integer = EleX To Elementos.Count - 1
               For I3 As Integer = EleX To Elementos.Count - 1
                   If Elementos(I2) <> Elementos(I3) And Elementos(I3) > Elementos(I2) Then
                       ListBox1.Items.Add(String.Format("{0:00}, {1:00}, {2:00}", Elementos(I1), Elementos(I2), Elementos(I3)))
                   End If

               Next
           Next
       Next
       MessageBox.Show("Combinaciones: " & ListBox1.Items.Count)





      19!     
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ = 969
3!·(19 - 3)!



Ya sabes las prisas jejjejeje pero si resta no ? y deja solo únicos, ya no veo de tanto estar pegado al monitor :(

luis
#92
 Hola cara de japones jejej es broma yo me tomo todo en broma ya con mi edad no se puede andar enfadado, mira como lo llevo ponlo a rular y dime que tal va :)

Código (vbnet) [Seleccionar]
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Elementos As IEnumerable(Of Integer) = {2, 6, 10, 11, 17, 20, 24, 34, 38, 39, 40, 41, 41, 42, 43, 44, 45, 46, 47, 50}
        Dim EleX As Integer = 0
        Dim EleX2 As Integer = 0
        ListBox1.Items.Clear() 'Limpia el ListBox
        For I1 As Integer = 0 To Elementos.Count - 1 : EleX += 1
            For I2 As Integer = EleX To Elementos.Count - 1
                For I3 As Integer = EleX To Elementos.Count - 1
                    If Elementos(I2) <> Elementos(I3) And Elementos(I3) > Elementos(I2) Then
                        ListBox1.Items.Add(String.Format("{0:00}, {1:00}, {2:00}", Elementos(I1), Elementos(I2), Elementos(I3)))
                    End If

                Next
            Next
        Next
        MessageBox.Show("Combinaciones: " & ListBox1.Items.Count)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim list As New List(Of String)
        Dim i As Integer

        For i = 0 To ListBox1.Items.Count - 1
            list.Add(ListBox1.Items(i))
        Next i

        ListBox1.Items.Clear()

        For Each s As String In list.Distinct
            ListBox1.Items.Add(s)
        Next
    End Sub



y si resta o no resta después de aplicar el filtro habra que poner un count despues de aplicar el filtro

espero
Luis


#93
Cita de: Lekim en 25 Marzo 2016, 19:01 PM
Amos a ver

¿Y esto que es lo que hace?

Código (vbnet) [Seleccionar]
        Dim Elementos As IEnumerable(Of Integer) = {20, 24, 34, 44, 45}
        Dim EleX As Integer = 0
        Dim EleX2 As Integer = 0
        ListBox1.Items.Clear() 'Limpia el ListBox
        For I1 As Integer = 0 To Elementos.Count - 1 : EleX += 1
            For I2 As Integer = EleX To Elementos.Count - 1
                For I3 As Integer = EleX To Elementos.Count - 1
                    If Elementos(I2) <> Elementos(I3) And Elementos(I3) > Elementos(I2) Then
                        ListBox1.Items.Add(String.Format("{0:00}, {1:00}, {2:00}", Elementos(I1), Elementos(I2), Elementos(I3)))
                    End If

                Next
            Next
        Next
        MessageBox.Show("Combinaciones: " & ListBox1.Items.Count)



20, 24, 34
20, 24, 44
20, 24, 45
20, 34, 44
20, 34, 45
20, 44, 45
24, 34, 44
24, 34, 45
24, 44, 45
34, 44, 45

madre miaaaa!!!!!

A ver jejej en que parte empiezo hablar chino jajja no en serio ,se que te pica la curiosidad  :silbar: para ordenarlos lo puedo hacer a mano ademas tengo que mirar si este codigo hace exactamente que lo de elektro y por favor no te ofendas jejje no es que sea mejor o peor, es que tengo metida entre ceja y ceja una idea y yo soy muy "TERCO · lo Reconozco .solo quiero trabajar con el listbox despues que este cargado con el otro codigo, pero ahora mismo voy a compararlos ya te dire que hace jejejje solo mira bien y tienes que darte cuenta que es lo que hace y ya te lo dire pero con pruebas :)

Luis




#94
Cita de: Lekim en 25 Marzo 2016, 18:29 PM
ahí está compi, para hacer eso cambias el código o usas el que ya te di uno usando For Next o añades más còdigo para quitar las repeticones lo cual es un royo. Por eso te digo que si yo ya he puesto un código que hace esto mismo porque te empeñas en usar este XD

Ya puse tu codigo de la primitiva a rular a ver si ganamos jejejje   ;-) ,bueno en serio ,olvidate del codigo, solo imagina que tenemos el listbox y hay que eliminar como comento tan dificil es ???

Luis
#95
Joder estas empeñado con lo imposible jejej

Sinceramente, no se como hacerlo usando ese código  :¬¬. Yo ta te lo hice. Parece que hablo chino yo jaja. Hasta he dado clases de combinatoria que más quieres XD

Si lo que nesecito no es modificar el codigo. es eliminar en el listbox los numeros o lineas repetidas ........como ufff se me seca la lengua jajajja no me interesa modificar el codigo

voy corriendo a probar este codigo de la primi  a ver si tengo mas suerte que aca JAJAJJA

gracias :) por tu paciencia

Luis 
#96
Cita de: Eleкtro en 25 Marzo 2016, 17:57 PM
Lo estás haciendo todo al revés Luis, primero estás obteniendo una coleccion con sub-colecciones por elementos ( IEnumerable(Of IEnumerable(Of Integer)) ), luego, por cada sub-colección, unes todos los sub-elementos en un string con String.Join(), luego, ese string, el cual contiene la representación de cada sub-colección con saltos de linea, lo partes por un salto de linea ( colección.Split({Environment.NewLine}) ) para obtener de nuevo una colección que insertar en el listbox... y ahora, quieres volver a convertir los elementos del Listbox en un array de enteros para eliminar duplicados.

No se si me he equivocado en algún paso del procedimiento, por que ya solo de pensarlo es un completo lio lo que estás haciendo, tanta conversión de array a string, y viceversa, DEJA DE HACER ESO.

Si quieres eliminar duplicados, entonces hazlo en el momento en el que construyes la colección de combinaciones, NO despues de haberla transformado en no se cuantos tipos de objetos ya :¬¬.

Mi consejo:
Intenta hacer un buen planteamiento de la lógica antes de escribir ningún código, por que luego acabarás con necesidades como esta, me refiero a tener que hacer algo en un paso del proceso en el que ya deberias haberlo hecho... no se si me explico.
Create un Type que herede de una colección genérica, llamemoslo CombinationCollection, y úsalo parra almacenar las combinaciones.
Para representar los valores o combinaciones, en un string, podrías utilizar un proveedor de formato personalizado, es decir, una class que implemente la interface IFormatProvider y ICustomFormatter (el cual usarias como formato personalizado en el método  String.Format()). O simplemente suplantar el método ToString en tu type personalizado.

Es mucho trabajo, como para mostrarte ejemplos de todo, pero en MSDN los puedes encontrar.

Saludos!

Hola bueno Elektro sabes que me baso mucho en tus modelos jejej y por supuestos tus consejos ya que te has pasado con la ayuda que me has dado, pero ciertas cosas son chinas para mi jejje,me acostumbre a trabajar con un tipo de variable y me vuelvo un lio cuando se cambia de modo, por eso es que trato de llevar al terreno que conozco las cosas. lo que pasa es que no quiero tocar tu código, me gustaría resolverlo mas facil y para mi seria poder limpiar el listbox de los resultados duplicados  después que estén hechos, ya sabes que cada quien le tiene una idea especifica a cada cosa  :silbar: y me interesa que tu codigo quede de esa manera.ya que códigos de combinaciones y permutas hay miles jejeje pero no es lo que busco.

saludos
Luis

#97
Cita de: crack81 en 25 Marzo 2016, 17:47 PM
Hola puedes revisar esta posible solucion

Código (vbnet) [Seleccionar]
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim list As New List(Of String)
        Dim i As Integer

        For i = 0 To ListBox1.Items.Count - 1
            list.Add(ListBox1.Items(i))
        Next i

        ListBox1.Items.Clear()

        For Each s As String In list.Distinct
            ListBox1.Items.Add(s)
        Next

    End Sub
End Class





Gracias por tu ayuda pero no me elimina ,primero hay que ordenarlos para poder eliminar todas las lineas iguales son muchos registros

saludos
Luis


#98
Jjejeje no se cuando aprendí hablar chino  ;D ;D ;D  我不明白的貓

A ver lekim estoy usando este código, los tuyos los tengo reservados a otros proyecto que se me ocurren por cierto me parecen estupendos ,pero estoy usando el código de Elektro este código me entrega los números a si. y

supongamos que voy a jugar a la lotería  :silbar: .como dices son no se cuantos millones de apuestas pero te equivocas en la primitiva ahora son mas millones ya ahora es 6+complementario eso te multiplica la ostia  :o

Para que necesito hacer apuestas donde los números se repiten ? estaríamos formando realmente apuestas iguales si ordenamos los números de cada linea  de menor a mayor.veremos que se repiten muchos registros por ende. es lo que quiero eliminar todos los que tienen asterisco ya que son combinaciones iguales pero en diferente orden

asi es como me entrega AHORA este codigo los resultados

20, 24, 34***
20, 24, 37
20, 34, 24***
20, 34, 37
20, 37, 24
20, 37, 34****
24, 20, 34
24, 20, 37
24, 34, 20
24, 34, 37
24, 37, 20
24, 37, 34
34, 20, 24
34, 20, 37
34, 24, 20***
34, 24, 37
34, 37, 20
34, 37, 24
37, 20, 24****
37, 20, 34
37, 24, 20
37, 24, 34
37, 34, 20
37, 34, 24


Simplemente quiero dejar números, registros o lineas únicas


Código (vbnet) [Seleccionar]
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim intCol As IEnumerable(Of Integer) = {20, 24, 34, 44, 45}

        Dim pairsCol As IEnumerable(Of String) =
            From value1 As Integer In intCol
            From value2 As Integer In intCol
            Select String.Join(Environment.NewLine, (
                               From value3 As Integer In intCol
                               Where (value1 <> value2) AndAlso
                                     (value1 <> value3) AndAlso
                                     (value2 <> value3)
                               Select String.Format("{0:00}, {1:00}, {2:00}",
                                                    value1, value2, value3)))


        For Each pairs As String In pairsCol


            For Each line As String In pairs.Split({Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)
                ' MsgBox(pairs.Count)
                ' MsgBox(line1.Count)

                Me.ListBox1.Items.Add(line)

            Next line

        Next pairs



Luis
#99
.NET (C#, VB.NET, ASP) / Ordenar listbox ??
25 Marzo 2016, 15:29 PM
Tengo un listbox que tiene registros de esta forma

20, 24, 34
20, 24, 44
20, 24, 45
20, 34, 24
20, 34, 44
20, 45 ,24

necesito ordenarlos para saber cuantas lineas son iguales y haci poder eliminar duplicados explico:

si ordenamos los números de arriba estos quedarían así

ordenados vemos que se repiten
20, 24, 34
20, 24, 44
20, 24, 45****
20, 24, 34****
20, 34 ,45
20, 24, 45 ***

tengo este  código pero lo ordena de menor a mayor


Código (vbnet) [Seleccionar]
Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
       ListBox1.Sorted = True
       ListBox1.Sorted = False
       Dim i As Integer
       Dim count = ListBox1.Items.Count
       For i = ListBox1.Items.Count - 1 To 0 Step -1
           ListBox1.Items.Add(ListBox1.Items(i))
       Next
       For i = 0 To count - 1
           ListBox1.Items.RemoveAt(ListBox1.SelectedItem)
       Next
   End Sub


alguna sugerencia o ejemplos que pueda conseguir

Luis







#100
Cita de: Lekim en 24 Marzo 2016, 13:56 PM
Hola Luis

Ya te comenté lo de meter la lista en un Array list:

Código (vbnet) [Seleccionar]

       Dim Elementos() As String = {1, 2, 3, 3, 3, 4, 4, 5}
       Dim LISTA As New List(Of String)(Elementos)


       MsgBox("Con repeticiones")
       For Each N As String In LISTA
           ListBox1.Items.Add(N)
       Next

       MsgBox("Sin repeticiones")
       ListBox1.Items.Clear()
       LISTA = LISTA.Distinct.ToList '<---Elimina las repeticones de la lista
       For Each N As String In LISTA
           ListBox1.Items.Add(N)
       Next




Con integer:

Código (vbnet) [Seleccionar]
        Dim Elementos() As Integer = {1, 2, 3, 3, 3, 4, 4, 5}
        Dim LISTA As New List(Of Integer)(Elementos)


        MsgBox("Con repeticiones")
        For Each N As String In LISTA
            ListBox1.Items.Add(N)
        Next

        MsgBox("Sin repeticiones")
        ListBox1.Items.Clear()
        LISTA = LISTA.Distinct.ToList '<---Elimina las repeticones de la lista
        For Each N As String In LISTA
            ListBox1.Items.Add(N)
        Next



Hola y gracias ,bueno esto solo funciona con la cadena propia que me muestras

Código (vbnet) [Seleccionar]
Dim Elementos() As String = {1, 2, 3, 3, 3, 4, 4, 5}
        Dim LISTA As New List(Of String)(Elementos)
 



y yo busco es aplicarlo a los resultados que me da :

Código (vbnet) [Seleccionar]
  For Each pairs As String In pairsCol


            For Each line As String In pairs.Split({Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries).Distinct().ToArray
                ' MsgBox(pairs.Count)
                ' MsgBox(line.Count)

                Me.ListBox1.Items.Add(line)
            Next line

        Next pairs



Donde se supone que los datos dentro del listbox es LINE el cual no encuentro la manera de pasarlos a un array y ya he probado de todo ;(

Luis