Ver Mensaje Individual
  #11
Antiguo 3 de junio de 2020, 11:02
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 17.09.2026 18:23
Posts Posts: 401
Likes enviados Enviados: 130
Likes recibidos Recibidos: 179

Citación del post de JCantero Ver Mensaje
@Joseg, reto conseguido y muy curiosa la solución.

---------- Post añadido : 14:35 ---------- Post anterior : 14:17 ----------

Va analizando cada combinación en binario. Es decir:

0
1
01
11
001
101
011
111
*
*
*
1111111111111 (hasta las posiciones que se configuren, en este caso 12)

Y va sumando en cada combinacion con los elementos de la lista dada y comprobando si da el resultado buscado.

¡ Muy Curioso ! pero eficiciente.

Ya lo he modificado para 30 elementos y lo he puesto en un windows y en un linux, a ver lo que tarda ¡¡¡



---------- Post añadido : 20:18 ---------- Post anterior : 14:35 ----------

Para vuestra información y curiosidad. (buscando con 30 elementos) ( 2^30-1 combinaciones)

Compilado en RM/cobol y ejecutado en windows y linux.

Después de 7 horas esperando:
1) el proceso de windows 10 (64 bits) lleva un 30%
2) el proceso en linux (virtual) con 8 CPUs lleva un 45%

He realizado lo mismo en C. Lo he ejecutado en el linux. Ha tardado 2,5 minutos. Ya lo esperaba pero me ha sorprendido tan poco tiempo.

Me gustaria que hicierais lo mismo en otros COBOL para ver como son de rápidos en estas cosas.

Hacedlo para 30 elementos, modificando el programa de @joseg o os lo envio.

Por este motivo yo muchas veces implemento rutinas en C para obtener mejores resultados aunque no sean valorados.
Experimente o GnuCobol (traduz de cobol para C). É muito rápido.
Mas a rotina acima que mandei pode ser muito mais optimizada e não fazer tantos cálculos.
Substituir os CPMP-3 por COMP-5 (formato decimal é mais lento que o formato binário).
Se usar apenas números inteiros, deve de ajustar o PIC (aumenta a velocidade).
Joseg is offline   Responder Con Cita