![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
hola danielmj,
Una opción es representar la combinación con un entero de 32 bits si los elementos a combinar son menos de 32 o de 64 bits si son mas de 32 elementos y menos de 64 elementos, (para mas elementos tendrías que crear array de enteros), de tal forma que cada posición de un bit representa ese numero de elemento. por ejemplo: si tienes una combinación de 3 elementos de una lista del 1 al 8 combinación 1: elementos 1, 5, 6 combinación 2: elementos 2, 5, 6 Código:
bit|7|6|5|4|3|2|1|0| -> DEC C1=|0|0|1|1|0|0|0|1| -> 49 C2=|0|0|1|1|0|0|1|0| -> 50 Al ejecutar el siguiente código ya puedes saber si hay coincidencias o no
Para obtener el entero de la combinación a partir de una lista con los elementos selecionados puede hacer los siguiente
Espero que esto te pueda ayudar Un saludo Última edición por bucanero fecha: 13-04-2018 a las 16:38:47. |
|
#2
|
||||
|
||||
|
Hola,
Puede ser que le esté entendiendo mal, pero sospecho que le puede servir el típico "set intersection". A saber: Fuente: Intersection of two strings/sets - Stack Overflow -
__________________
"constructive mind, destructive thoughts" |
|
#3
|
||||
|
||||
|
Hola, mi código es este:
Comparo cada item de per (cad2) con la etiqueta "n" ¿no debería funciionar? loo pregunto por que no lo hace. Voy a probar tu código y te comento. Gracias.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes. |
|
#5
|
|||
|
|||
|
Cita:
Tomando el ejemplo mio anterior y aplicado a tu técnica obtendrías:
Por eso salvo que sea la misma combinación no obtienes resultados. Debes hacer otro tipo de comparación que no sea de tipo string. Lo interesante del método que te puse arriba es que al hacer el AND de dos combinaciones representadas con dos integer de tipo INT64, solamente se tarda un único ciclo de CPU para saber si la combinación tiene o no tiene alguna coincidencia, y dado que la mayoría de las veces no vas a tener coincidencias, es un proceso muy rápido. Y para procesos con tantísimas combinaciones a comparar, cualquier ganancia en calculo se agradece, pues se nota en el tiempo final. |
|
#6
|
||||
|
||||
|
Hola TOPX creo que no es lo que busco, o no entendí bien tu propuesta, lo que trato de hacer (básicamente) es comparar cada fila de un listview de 5 elementos con cada item de un listbox que almacena todas las permutaciones (120).
Bucanero, miro tu versión, pero hay cosas que no veo, por ejemplo, declaro tu funcion, pero no la implementación a la hora de comparar las permutaciones con cada subitem del listview. Se me escapa. Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes. |
|
#7
|
|||
|
|||
|
aplicandolo a tu código deberías de tener algo así:
Un saludo |
|
#8
|
||||
|
||||
|
Hola Bucanero, estoy con tu código pero en
da error, no reconoce "subitems". <<Per>> es un listBox, quizás sea por eso., así que por ahora no puedo ver que tal funciona. Un saludo y gracias.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes. |
|
#9
|
|||
|
|||
|
debes de adaptar el parámetro LIST de la funcion ValorCombinacion para el tipo de componente que estes utilizando en tu caso particular, pensé que eran TLISTVIEW. Si en un TLISTBOX entonces puedes poner:
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| sumando valores de un listview | danielmj | Varios | 28 | 14-11-2014 21:52:30 |
| VALORES FANTASMAS FIREBIRD 2.1 valores Grandes | ASAPLTDA | Firebird e Interbase | 17 | 02-12-2012 12:09:02 |
| Rellenar con 0.... | buitrago | Varios | 6 | 17-11-2011 20:02:53 |
| ¿Cómo insertar una imágen en un lisbox o un memo? | Acuarius3000 | Gráficos | 3 | 27-06-2005 08:44:53 |
| arastrar archivos a un lisbox | gulder | C++ Builder | 3 | 05-05-2005 13:31:50 |
|