Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-12-2013
paquechu paquechu is offline
Miembro
 
Registrado: oct 2008
Posts: 51
Poder: 16
paquechu Va por buen camino
Mejorar rendimiento en tratamiento de grupos de números

Hola,
Estoy haciendo pruebas para programar el tratamiento de grupos de números, de forma que pueda comparar cada una de las posibles combinaciones de la loto 6/49 (aprox. 14Millones) con todas las líneas que pueda tener un grupo.

Un grupo puede estar formado por 100, 200, 10.000 o más líneas y la cantidad de números de cada línea puede ser también variable. Un ejemplo de grupo sería:

12,15,27
1,13,43,44,48,49
3,9,16,27,29

Este tendría solamente 3 líneas pero me planteo trabajar con grupos de 10.000 o 50.000 líneas o incluso más.

El problema que tengo es la lentitud de los procesos de evaluación, tarda muchisimo y no se si es por la definición del tipo de variables, por la ineficiencia del código empleado o por ambas cuestiones.

Actualmente estoy utilizando un array numérico bidimensional para contener todas las combinaciones posibles comb[1..13983816][1..6] y otro array de tipo string para almacenar los números del grupo a evaluar.

El pseudocodigo que empleo es el siguiente (suponiendo que el grupo tiene 80 líneas):

Código Delphi [-]
aciertos_esperados='0,1'

Por_Cada_Combinacion_Posible (i=0 hasta 13983816)
  
  Por_Cada_Linea_De_Grupo (L=0 hasta 80)
  
    aciertos=Contar_Aciertos( comb[i], grupo[L] )
    
    if aciertos está en aciertos_esperados
      EsValida=True
    si no
      EsValida=False
      Salir del bucle de grupo
    fin
  fin

fin

La funcion Contar_Aciertos compara cada numero de la combinacion comb[i] con cada número de los que aparece en la línea grupo[L]

Pues este es el problema. Tarda muchisimo y queria ver si alguno de vosotros tiene experiencia sobre este caso para conseguir que el proceso sea más rápido, bien definiendo las variables de alguna forma determinada o con otro tipo de proceso….

Muchas gracias.
Paco.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
mejorar rendimiento firebird con una conexion de red lenta hibero Firebird e Interbase 4 26-05-2008 11:03:17
Busco mejorar el rendimiento Bkewater Windows 7 11-01-2008 19:03:53
Mejorar el rendimiento en inserciones másivas dec Trucos 1 13-07-2007 04:55:13
Exportar a TXT-Mejorar rendimiento andresenlared MS SQL Server 9 19-05-2007 00:01:04
Mejorar rendimiento usando ODBC??? Tanis30 Conexión con bases de datos 3 15-12-2006 14:45:59


La franja horaria es GMT +2. Ahora son las 23:04:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi