Título: Duda acerca del calculo de combinaciones de numeros y letras en vb.net 2010 Publicado por: arturoro en 14 Noviembre 2015, 07:10 am Hola a todos y buenas noches o dias:
Estuve leyendo acerca del Programa para hacer combinaciones de numeros, y vi que el usuario pkj, hizo y modifico un programa en vb 6.0, y lo puse en vb.net 2010, en donde podias poner el tamaño del grupo y la lista de numeros que querias formar, yo quiero calcular y grabar en un archivo todas las combinaciones de 8 grupos de 2, ya sea numero, letras o la combinacion, por ejemplo el grupo de 8 seria: "AA,BB,CC,15,EE,20,GG,01" y calcular todas las varibles que pueden salir, segun en el propio programa, el total de variables son 40320, y yo deseo grabar todas esas variables, claro, sin repetir. Al momento de ejecutar el programa con las variables ya descritas, solo hace el primer calculo o mejor dicho, coge las primeras variables, hasta ahi, todo bien, pero, ya no hace los otros calculo, solo saca la primera linea y termina, estuve observando y si muevo el total de la matriz donde guarda los datos obtenidos, me manda error en la matriz de los numeros. Les paso el link en donde el usuario PKJ (agradezco su valiosa aportacion, ya que es lo que deseo) pone su programa, esta en vb 6.0: https://foro.elhacker.net/programacion_visual_basic/programa_para_hacer_combinaciones_de_numeros-t414603.10.html Yo le hice pequeñas modificaciones, les paso el programa para que me puedan orientar o en su defecto ayudar, esta en vb.net 2010 Código
De antemano Muchas GRACIAS!!! ;-) Título: Re: Duda acerca del calculo de combinaciones de numeros y letras en vb.net 2010 Publicado por: pkj en 22 Noviembre 2015, 09:46 am Hola Arturoro.
No tengo muy claro lo que explicas ni como te ha salido el numero 40320. Las combinaciones sin repetición de 8 elementos en grupos de 2 creo que serian algo como 7+6+5+4+3+2+1 En tu ejemplo: 7 AA,BB AA,CC AA,15 AA,EE AA,20 AA,GG AA,01 6 BB,CC BB,15 BB,EE BB,20 BB,GG BB,01 5 CC,15 CC,EE CC,20 CC,GG CC,01 4 15,EE 15,20 15,GG 15,01 3 EE,20 EE,GG EE,01 2 20,GG 20,01 1 GG,01 El problema que veo es que pones grupos de 8 donde deberias poner un 2 Public TamGrupos As Integer = 8 ' Tamaño de los grupos De modo que solo te muestra 1 grupo con los 8 elementos Saludos Título: Re: Duda acerca del calculo de combinaciones de numeros y letras en vb.net 2010 Publicado por: arturoro en 24 Noviembre 2015, 03:09 am Hola PKJ y gracias por responder ;-) :
Si, creo que no me explique bien, tu programa esta excelente, solo deseo que los 8 grupos con elementos de 2, haga las combinaciones, y debe de salir mas o menos asi: GRUPO DE 8 CON 2 ELEMENTOS CADA UNO: AA,BB,CC,8E,Z1,X1,Y0,01 :rolleyes: Las combinaciones serian mas o menos as1: AA,BB,CC,8E,Z1,X1,Y0,01 BB,AA,CC,8E,Z1,X1,Y0,01 01,BB,AA,CC,8E,Z1,X1,Y0 CC,8E,Z1,X1,Y0,01,BB,AA ... Y asi sucesivamente hasta que ya no existan mas combinaciones, ya sea poner un listbox, o un archivo. Gracias por todo y perdona mi ignorancia SALUDOS!!! :laugh: Título: Re: Duda acerca del calculo de combinaciones de numeros y letras en vb.net 2010 Publicado por: pkj en 24 Noviembre 2015, 12:29 pm Entonces no es mi funcion lo que necesitas.
No se me ocurría por donde pillarlo, asi que he usado una sub recursiva muy chula que nos dejó seba123neo, con algunas modificaciones. Aquí está la sub original: http://foro.elhacker.net/programacion_vb/combinaciones_vb-t240009.0.html Y esto es lo que he sacado: Hace falta un command button y un listbox. Código
A la sub de seba123neo solo le he añadido una matriz donde ir dejando los grupos que luego convertiremos segun nuestra necesidad. Es mejor usar matrices porque un listbox tiene más limitaciones de capacidad. Espero que te sirva. Saludos Título: Re: Duda acerca del calculo de combinaciones de numeros y letras en vb.net 2010 Publicado por: arturoro en 25 Noviembre 2015, 22:39 pm Gracias PKJ, es exactamente lo que necesito ;-) , esta en vb 6.0, lo voy a convertir (jejeje!! si eso aplica) a vb.net 2010, y lo voy a subir, y tambien y como una pequeña aportacion y un gran gracias a PKJ, les pongo otro calculo de combinaciones en vb.net 2010, por si alguien le interesa y le saca provecho.
Solo necesitan 2 textbox, 1 listbox y 1 boton. Código
GRACIAS POR TODO!!! ;-) :rolleyes: ;-) :rolleyes: Título: Re: Duda acerca del calculo de combinaciones de numeros y letras en vb.net 2010 Publicado por: Eleкtro en 20 Diciembre 2015, 07:33 am Lo siento, llego tarde al tema (es lo que sucede si publicas en la sección incorrecta).
Ya lo has solucionado de una manera, pero si por casualidad lees esto quiero preguntarte si el rendimiento es un factor importante para tu algoritmo, ya que en caso afirmativo entonces estás desaprovechando todo el potencial que .Net nos ofrece. Para cálculos de complejidad computacional cómo son las permutaciones y combinaciones, puedes utilizar el paralelismo para ganar una elevada velocidad de procesamiento al utilizar todos los nucleos disponibles, y evitar todos esos wrappers de Vb6 que utilizaste reemplazándolos por el uso de LINQ (o al menos utilizar un For pero con los métodos de manipulación de string equivalentes y el método Array.Copy en lugar de ReDim), ganando así velocidad, mucho más estabilidad del algoritmo y reducción/legibilidad del código, a costa de perder una cantidad ínfima de rendimiento que ya habrías ganado al reemplazar el código vb6-estilizado. Si lo necesitas dímelo y desarrollo una solución, pero trata de explicame mostrando un ejemplo con las expectativas del resultado de ejecución, ya que no me ha quedado del todo claro que quieres hacer con esos ocho grupos, como quieres calcular las permutaciones; ¿quieres intercambiar las posiciones de cada grupo preservando los 2 caracteres de cada grupo?, ¿o quieres sustituir de forma incrementativa cada caracter de cada grupo?. Saludos! |