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

#101
Cita de: crack81 en 23 Marzo 2016, 23:40 PM
puedes detallar un poco mas lo que quieres hacer?

Bueno analizando el problema , lo que quiero es ordenar los registros y eliminar los coincidentes

ahora me los entrega de esta forma desordenado deberian estar por oden de menor a mayor

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


para poder eliminar iguales se debería de ordenar primero el orden de los registros

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

Para eliminar los que están marcados con *


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


Estoy tratado de convertir la variable antes de llenar el testbox

Pero cuando trato de hacerlo con (Line) me dice error

"Ya no se admiten instrucciones 'Line'." ???? 

estoy mas enredado  :silbar:

Luis

#102
Ya me canse jejej ,,de revizar todos mis códigos  y parte de google todo el dia :(

alguna idea ? que me pueda servir

#103
Cita de: Eleкtro en 23 Marzo 2016, 15:05 PM
De todas formas, tengo una sorpresita para ti.

Ayer te mencioné lo del desarrollo de la función de permutaciones (ya no se si quieres combinaciones o permutaciones, pero esto viene al caso igualmente),
al final he acabado haciendo un puerto para Vb.Net de la librería Combinatronics, la cual tiene un código fuente que es una delicia:

Aun no he terminado de finalizar el código fuente, pero igualmente puedes usar ese en C#. Solo tienes que descargarlo desde GitHub y compilarlo en Visual Studio, se generará una librería "Combinatronics.dll", referencias esa dll en tu proyecto de Vb.Net, y listo.

Modo de empleo:
Código (vbnet) [Seleccionar]
Dim permutations As New Permutations(Of Integer)({3, 1, 10}, MetaCollectionType.WithoutRepetition)

MsgBox(String.Format("Permutaciones: {0}", permutations.Count))

For Each permutation As List(Of Integer) In permutations
   Console.WriteLine(String.Join(", ", permutation))
Next permutation


PD: Si esto no resuelve los problemas con combinaciones/permutaciones ...yo no se que más puedes necesitar ya xD.

Saludos!


Gracias por tu tiempo y GRAN PACIENCIA jejejje lo que necesito es crear un sistema de Combinaciones pero no busco lo normal jejejje busco algo diferente pero en combinaciones únicas ya que codigos de combinaciones hay miles pero son lo basico y normal jejje con eso no se llega a donde quiero ir   ::) , las permutas no me valen para lo que busco :( te puse lo que me gustaría poder hacer a ver si se puede, sin modificar la funcion del codigo ,solo en el resultado


Luis



#104
Bueno aca esta la lista completa como me lo entrega ahora .esto esta haciedo permutaciones pero no quiero modificar el codigo ya que le tengo otras ideas jejej
solamente quiero dejar una combinacion de cada uno.esto es quitar toda cambinaciones que tengan o coincidan los mismos tres numeros en diferente orden.

ideas pasar esta lista a una variable donde elimine antes de mostrar en el listbox .


ahora esta es la salida como me la muestra.

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


quiero ir eliminando las combinaciones iguales porque si se mira bien. veras que hay combinaciones que son iguales. solo que cambian las posiciones de los números.


debería quedar asi
20, 24, 34
20, 24, 37
20, 34, 37
24, 34, 37



Luis
#105
Esto no acaba nunca :(

Esto ya funciona pero me repite las combinaciones y necesito números o combinaciones únicas ya que  1, 2, 3 es lo mismo que  3, 2, 1 o  2, 1, 3... solo debe quedar uno de ellos
he probado con poner " .Distinct().ToArray " pero como siempre :(

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

       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).Distinct().ToArray
               ' MsgBox(pairs.Count)
               ' MsgBox(line.Count)

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

       Next pairs


   End Sub


salida

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

si os dais cuenta las combinaciones se repiten pero con el orden de los numeros cambiados como podria dejar solo una de ellas ???

Luis



#106

" AndAlso " me cag... mira que lo pensé en serio, buaaa ya tengo 56 años " y si es eso  :¬¬ lo que andaba buscando , ahora puedo formar grupos de números combinados

gracias de nuevo y ya veo lo senil que me estoy poniendo :(


Gracias Elektro

Luis
#107
Cita de: Eleкtro en 22 Marzo 2016, 16:54 PM
Me he dado cuenta que la función actual que tengo para realizar permutaciones no sirve para tu propósito, puesto que es para caracteres (me refiero, a strings de 1 caracter), y tu quieres hacer permutaciones de los elementos de un array (números de más de 1 dígito), así que ahora mismo no puedo enseñarte nada, por que me llevará su tiempo idear el nuevo algoritmo, lo siento, pero me pondré a ello, por que sería una función muy útil para tenerla siempre a mano.

De todas formas aquí te la dejo para que le heches un vistazo si quieres:
https://github.com/ElektroStudios/ElektroKit/blob/master/Solution/v1.2/Elektro.Cryptography/Tools/CryptoUtil_Permutations.vb

Saludos

Lo acabo de ver lo voy a probar ,pero permutaciones no es igual a combinaciones ,el codigo de arriba que puse si hace combinaciones, y estoy parado en

Código (vbnet) [Seleccionar]
Where (value2 <> value1)

lo que me gustaría saber es como mostrar en ves de value1 y value 2, poner dentro de la misma rutina un tercer valor value3

o sea mostrar "  value1 , value2 y value3 " tambien pense en ir duplicando el codigo modificando variables y al final unirlos en un array y irles haciendo un take() pero no se me suena a escribir mucho jajjajaj y miles de fallas seguro

Luis





#108
Cita de: Eleкtro en 22 Marzo 2016, 16:16 PM
Creo que me he pasado escrito un texto demasiado largo...


:o :o :o :o :o :o :o tengo para meses jejjeje

luis
#109
Hola ya de nuevo por acá con mis números raros :) para combinar, esto también le puede servir a quien le guste sacar o crear claves de logins y cosas por el estilo  :silbar:

Bien aunque he logrado modificar algunas cosas de este código me gustaría saber como funciona,  ahora combina una cadena de números de dos en dos y ahora busco combinar la cantidad que sea o de tres o de cuatro o mas combinaciones bajo el mismo concepto que tiene ahora

Código (vbnet) [Seleccionar]
Dim intCol As IEnumerable(Of Integer) = {1, 3, 4, 5, 8, 13, 24, 35, 44, 49 ,55 ,77 ,88}

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

       For Each pairs As String In pairsCol
           Console.WriteLine(pairs)
           Console.WriteLine("------")
           MessageBox.Show(pairs)

       Next
   End Sub


Luis

#110
.NET (C#, VB.NET, ASP) / Re: Combis :(
20 Marzo 2016, 16:17 PM
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