![]() |
Permutaciones de un numero
Saludos a todos/as , Necesito hacer una busqueda de un numero en un campo pero ese numero puede variar mejor dicho
Yo tengo un numero el 123 yo quiero que delphi me busque en un campo ese numero y sus posibles conbinaciones ejemplo: 231,312 etc.. alguna funcion o idea:confused: |
Siempre que hables de Bases de datos, dinos qué base de datos usas, porque suele haber una solución distinta para cada una de ellas.
Saludos |
Quizás, generar en una matriz de dos dimensiones, las distintas combinaciones posibles del número dado y luego ir buscando las distintas combinaciones y guardar en la segunda posición, por ejemplo S, cuando se encuentre, la otra posición se habría inicializado a N.
Un Saludo. |
la base de datos es en paradox. pero mejor seria que me den un ejemplo por codigo.....
o existe alguna funcion , perdone son novato:confused: |
Realiza las combinaciones posibles que en tu caso serían seis. Supongamos que cada combinación la guardas en un arreglo de longitud 6, luego harías una consulta que se me ocurre puede ser así aunque no la he probado:
Query1.close; Query1.ParamByname('Var1').Value:=Comb1; Query1.ParamByname('Var2').Value:=Comb2; ......... Query1.SQL.add('select campo1,campo2,.... from tabla where campo1=:Var1 or campo1=:Var2 or campo1=:var3 or campo1=:var4........') Query1.execSQL; Query1.Open; Puedes validar que los numeros que generaste no se repitan para que optimices el código. Pero así como está debería funcionarte. |
Otra forma es guardarlo en un string y usar algo así:
Saludos |
Bueno ya un amigo me ha dado la solucion pero el caso esta en que este me repite los numeros ejemplo yo le entro el 553 y me genera las posibles combinaciones pero me repite los numeros varias veces.
553 535 553 535 355 355 El codigo es este
Alguna sugerencia :confused: :confused: |
La propiedad Lines del Memo es un TStrings, compatible con un TStringList, este último tiene la propiedad Duplicates que se puede establecer en dupIgnore, de esta forma al repetir una cadena... obviamente la ignora y no la añade.
Saludos |
Disculpenme
Disculpenme por la tardanza para contestar pero es el trabajo que me ocupa de mucho al igual que ustedes.
Realmente lo que necesito es que si tengo un numero por ejemplo de cuatro cifra 2343 que me genere las posibles combinaciones para ese numero sin repetirlo y que me diga cuantas combinaciones se generaron para guardar en una variable X.. |
Falta quitar los duplicados, pero lo más gordo está hecho. No lo he testeado a fondo, pero creo que funciona. Está hecho a lo bruto, por simples intercambios de caracteres:
Saludos |
acabo de ver que tiene un fallo... pero eso te lo dejo a tí ;)
Saludos |
El caso es complicado, por eso he puesto parte de la solución, ahora te toca trabajarlo a tí y buscar linea por linea los errores.
La filosofía es la siguiente: de la cadena principal elijo el primer caracter como Pivote, lo paso al principio de la cadena y ahora voy intercambiando el segundo caracter con el tercer, despues el tercero con el cuarto, etc. Pero siempre quedan combinaciones que no las pillas, por eso está lo de los "saltos". Para ayudarte, quitando los fallos me da lo siguiente: texto:23 Solución: Código:
Total de combinaciones 2 Solución: Código:
Total de combinaciones 3 Solución: Código:
Total de combinaciones 6 Solución: Código:
Total de combinaciones 12 Solución: Código:
Total de combinaciones 24 Saludos |
OffTopic
Con el permiso otorgado por CoCaine, he cambiado el titulo del hilo para que el titulo coincida con el contenido de éste, y para futura busqueda. Saludos |
Saludos a todos
Cuando resolvamos este dilema le voy a invitar una jarra de cervezas a todos mis colegas y amigos :D un saludo a mi hermano Marverick.
Realmente lo que quiero es guardar en una tabla las convinaciones del numero eh checkado la solucion y no encuentro como convertir la varible a string debido a que la varible es un tstringlist, que viene siendo parecido a una arreglo. Con convertir eso y algunos arregrillos creo que resuelvo |
Hola,
A ver si en esto último que dices puedo echarte una mano. La variable "TStrings" obviamente no puede convertirse a "Integer", pero, es que una variable de tipo "TStrings" se compone de uno o varios elementos que son a su vez de tipo "String". Es decir, son dichos elementos los que podrías convertir a "Integer", si es necesario. ¿Un ejemplo? A ver si puede servirte de algo:
|
Gracias
Con la ayuda de todos y de dec eh logrado hacer las combinaciones , gracias a todos.
|
hola
solo una pequeña aclaracion al tema. ya que se ha cambiado el nombre para futuras busquedas, deberia volver a cambiarse, me explico, a la vista de las respuestas estamos hablando de permutaciones no de combinaciones para ver esto cito un texto Cita:
Cita:
un saludo |
Help me
Hey amigo gracias por ese codigo para realizar combinaciones con letras y numeros pero necesito por favor que me lo envies con las correcciones ya que, soy nuevo programando en Delphi y no entiendo mucho, aunque te prometo que me esforzare por aprender, pero please enviame el programita sin errores y si puedes explicarmelo en palabras mucho mejor.
Gracias EduardoSanz. Rep. Dom.:) |
La franja horaria es GMT +2. Ahora son las 00:11:45. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi