[Archivo] Matemáticas puras, física, química, etc.: problemas de entrenamiento cerebral no relacionados con el comercio de ninguna manera - página 452

 
Mathemat:

En general, hay que eliminar las restricciones de la cantidad. Todo el razonamiento sigue siendo esencialmente el mismo, sólo que más.

A juzgar por el hecho de que en la cita el hombre necesitaba el Cray 1, su algoritmo estaba menos optimizado que el tuyo :)

1. No se puede eliminar el límite de la cantidad: es parte del problema. Diferentes sumas dan resultados diferentes.

2. Con toda seriedad, me esforcé mucho. :)

Varias características hacen que el script sea rápido. La primera, y probablemente la más "rápida", es la tabla de descomposición del multiplicador, que se construye UNA vez al principio.

Permite rechazar la construcción de descomposiciones en cada ciclo de comprobación de números - basta con mirar en la tabla.

PERO. (!) :(

Ahora estamos atascados con su tamaño.

Sin embargo, si no construimos la tabla, sino que nos limitamos a descomponerla en multiplicadores cada vez, no podremos prescindir de Cray: tardaremos meses en resolver el problema.

Resumo: hay algo más que debemos optimizar. :)

Creo.

 
MetaDriver:

Pensar.

Todavía no se ha pensado en nada radical. Pero me las arreglé para subir a 5000

2011.01.15 21:08:46 MetaSage (EURUSD,M1) //+---- Max = 5000 -------------------+
2011.01.15 21:08:29 MetaSage (EURUSD,M1) S=373; P=19776; a=64; b=309
2011.01.15 21:08:29 MetaSage (EURUSD,M1) S=343; P=9952; a=32; b=311
2011.01.1515 21:08:29 PM MetaSage (EURUSD,M1) S=233; P=916; a=4; b=229
2011.01.15 21:08:29 PM MetaSage (EURUSD,M1) S=163; P=4192; a=32; b=131
2011.01.15 21:08:29 MetaSage (EURUSD,M1) S=149; P=5494; a=67; b=82
2011.01.15 21:08:29 MetaSage (EURUSD,M1) S=137; P=4672; a=64; b=73
2011.01.15 21:08:29 MetaSage (EURUSD,M1) S=127; P=1776; a=16; b=111
2011.01.15 21:08:29 MetaSage (EURUSD,M1) S=89; P=1168; a=16; b=73
2011.01.15 21:08:29 MetaSage (EURUSD,M1) S=65; P=244; a=4; b=61
2011.01.15 21:08:29 MetaSage (EURUSD,M1) S=17; P=52; a=4; b=13
2011.01.01.15 21:08:29 MetaSage (EURUSD,M1) //+---- Max = 5000 -------------------+
2011.01.15 21:08:29 MetaSage (EURUSD,M1) //============== START ========================
2011.01.1515 21:07:58 MetaSage (EURUSD,M1) a 5000 SMax*(SMax/6-1) = 4160000
2011.01.15 21:07:40 MetaSage (EURUSD,M1) //+---- Cantidad máxima = 4700 -------------------+
2011.01.15 21:07:24 MetaSage (EURUSD,M1) S=373; P=19776; a=64; b=309
2011.01.15 21:07:2415 21:07:24 MetaSage (EURUSD,M1) S=343; P=9952; a=32; b=311
2011.01.15 21:07:23 MetaSage (EURUSD,M1) S=233; P=916; a=4; b=229
2011.01.15 21:07:23 MetaSage (EURUSD,M1) S=163; P=4192; a=32; b=131
2011.01.15 21:07:23 MetaSage (EURUSD,M1) S=137; P=4672; a=64; b=73
2011.01.15 21:07:23 MetaSage (EURUSD,M1) S=127; P=1776; a=16; b=111
2011.01.15 21:07:23 MetaSage (EURUSD,M1) S=89; P=1168; a=16; b=73
2011.01.01.15 21:07:23 MetaSage (EURUSD,M1) S=65; P=244; a=4; b=61
2011.01.15 21:07:23 MetaSage (EURUSD,M1) S=17; P=52; a=4; b=13
2011.01.15 21:07:23 MetaSage (EURUSD,M1) //+---- Max = 4700 -------------------+
2011.01.15 21:07:23 MetaSage (EURUSD,M1) //============== START ========================
2011.01.15 21:06:56 MetaSage (EURUSD,M1) a 4700 SMax*(SMax/6-1) = 3675400

.

Las principales ideas de optimización giran en torno a la reducción del tamaño de la tabla almacenando sólo el primer multiplicador en las celdas y obteniendo el siguiente dinámicamente por referencia en la misma tabla.

Sin embargo, se trata de un ahorro de espacio en el tiempo que será, por supuesto, menor que en el caso de la construcción de un número de factores cada vez a partir de cero, pero todavía considerablemente más que ahora.

Estoy pensando de nuevo.

 

No. No voy a hacer un intercambio de espacio por tiempo. Incluso a la velocidad actual de 6900 cuenta durante unos 3 minutos. // Mentí, unos 2 :)

En el caso de referirse a la tabla, el número de cálculos aumentará cuadráticamente.

Es cierto que si calculas cada vez el aumento es exponencial, pero eso es algo de lo que hay que estar orgulloso, es una desaceleración de todos modos.


2011.01.15 21:33:44 MetaSage (EURUSD,M1) //+---- Max = 6900 -------------------+
2011.01.15 21:33:04 MetaSage (EURUSD,M1) S=373; P=19776; a=64; b=309
2011.01.15 21:33:04 MetaSage (EURUSD,M1) S=343; P=9952; a=32; b=311
15 21:33:04 MetaSage (EURUSD,M1) S=233; P=916; a=4; b=229
2011.01.15 21:33:04 MetaSage (EURUSD,M1) S=217; P=11392; a=89; b=128
2011.01.15 21:33:04 MetaSage (EURUSD,M1) S=163; P=4192; a=32; b=131
2011.01.15 21:33:04 MetaSage (EURUSD,M1) S=137; P=4672; a=64; b=73
2011.01.15 21:33:04 MetaSage (EURUSD,M1) S=127; P=1776; a=16; b=111
2011.01.15 21:33:04 MetaSage (EURUSD,M1) S=89; P=1168; a=16; b=73
2011.01.01.15 21:33:04 MetaSage (EURUSD,M1) S=65; P=244; a=4; b=61
2011.01.15 21:33:04 MetaSage (EURUSD,M1) S=17; P=52; a=4; b=13
2011.01.15 21:31:4815 21:31:48 MetaSage (EURUSD,M1) Con SMax=6900 PMax = SMax*(uint)(SMax/6-1) = 7928100
2011.01.15 21:31:46 MetaSage (EURUSD,M1) //+---- Max = 6900 -------------------+
2011.01.15 21:31:46 MetaSage (EURUSD,M1) //============== START ========================


En 7000 - Error 4004: "ArrayResize(): La cantidad de memoria solicitada supera los dos gigas. Tienes que ser más modesto".

Si alguien aquí tiene 64x bit + Win64 + MT5 64x + 8 gigas de memoria, puede llegar a los 10 mil, entonces es un fastidio de todos modos.

Sugiero que nos detengamos ahí. En realidad, los Reyes Magos originales están en el culo desde hace mucho tiempo.

 

Sí, puedes parar, eso es seguro. Ya ha creado un milagro que ha superado a Cray.

Y sin embargo, el patrón sobre los números se mantiene, es decir, uno de ellos es un grado de dos. Pero hay casos dudosos: cuando un número impar no es primo:

S=127; P=1776; a=16; b=111

S=373; P=19776; a=64; b=309.

 
Mathemat:

1. Sí, puedes parar, eso es seguro. Ya has creado un milagro que Cray ha saltado.

2. Y sin embargo, el patrón sobre los números se mantiene, es decir, uno de ellos es un grado de dos. Pero hay casos dudosos: cuando un número impar no es primo:

S=127; P=1776; a=16; b=111

S=373; P=19776; a=64; b=309.

1. Estoy de acuerdo. :)

2. ¿Sugiere que lo compruebe en un ordenador? Podríamos, pero sería una impresión larga. Ya lo resolveré.

 
Voy a finalizar y perfeccionar mi función de comprobación de la suma para una restricción arbitraria. Da la impresión de que las soluciones serán cada vez menos frecuentes a medida que crezca la restricción.
 
Mathemat:
Voy a terminar y perfeccionar mi función de comprobación de la suma para una restricción arbitraria. Da la impresión de que, a medida que aumenta la restricción, las soluciones serán cada vez más raras.

No es un hecho:

2011.01.15 22:52:56 MetaSage (EURUSD,M1) //+---- Cantidad máxima = 8000 -------------------+
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=373; P=19776; a=64; b=309
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=343; P=9952; a=32; b=311
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=247; P=1912; a=8; b=239
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=233; P=916; a=4; b=229
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=217; P=11392; a=89; b=128
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=185; P=724; a=4; b=181
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=179; P=2608; a=16; b=163
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=163; P=4192; a=32; b=131
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=137; P=4672; a=64; b=73
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=127; P=1776; a=16; b=111
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=89; P=1168; a=16; b=73
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=65; P=244; a=4; b=61
2011.01.15 22:51:55 MetaSage (EURUSD,M1) S=17; P=52; a=4; b=13
2011.01.15 22:50:34 MetaSage (EURUSD,M1) Con SMax=8000 PMax = SMax*(SMax/8-1) = 7992000
2011.01.15 22:50:33 MetaSage (EURUSD,M1) //+---- Max = 8000 -------------------+
2011.01.15 22:50:33 MetaSage (EURUSD,M1) //============== START ========================

Ya hay trece soluciones.

 
MetaDriver: Ya hay trece soluciones.

No es un hecho. Estos son los candidatos a la decisión. Tú mismo lo has aceptado. Y las "soluciones" con un compuesto extraño me inquietan mucho, aunque no puedo corroborar esa sospecha.

Pero la tendencia es alentadora. Te estás acercando a los diez mil. Los sabios son sabios, y nosotros somos programadores.

 
Mathemat:

1. No es un hecho. Estos son los candidatos a la decisión. Tú mismo lo has aceptado. Y las "soluciones" con un compuesto extraño me inquietan mucho, aunque no puedo corroborar esa sospecha.

2. Pero la tendencia es alentadora. Te estás acercando a los 10 mil dólares.

1. No lo pensé bien. Desde entonces tengo mucha más fe en mi guión. :)

Pues al intentar hacer un "comprobador", me di cuenta de que no hay nada que comprobar: todo funciona correctamente.

Sin embargo, todavía se puede hacer una impresora - por ejemplo, para ensuciar el foro Mechmaty con botín... :))))

// Y al mismo tiempo para calmarte. ;)

Sólo tengo que averiguar qué imprimir.

2. Así son las cosas. Hazlo firmar.


2011.01.15 23:18:16 MetaSage (EURUSD,M1) //+---- Cantidad máxima = 10000 -------------------+
2011.01.15 23:16:31 MetaSage (EURUSD,M1) S=373; P=19776; a=64; b=309
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=343; P=9952; a=32; b=311
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=247; P=1912; a=8; b=239
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=233; P=916; a=4; b=229
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=217; P=11392; a=89; b=128
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=191; P=8128; a=64; b=127
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=185; P=724; a=4; b=181
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=179; P=2608; a=16; b=163
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=163; P=4192; a=32; b=131
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=137; P=4672; a=64; b=73
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=127; P=1776; a=16; b=111
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=89; P=1168; a=16; b=73
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=65; P=244; a=4; b=61
2011.01.15 23:16:30 MetaSage (EURUSD,M1) S=17; P=52; a=4; b=13
2011.01.15 23:15:36 MetaSage (EURUSD,M1) Con SMax=10000 PMax = SMax*(SMax/16-1) = 6240000
2011.01.15 23:15:34 MetaSage (EURUSD,M1) //+---- Max = 10000 -------------------+
2011.01.15 23:15:34 MetaSage (EURUSD,M1) //============== START ========================


Adjunto la versión ganadora del guión.

Archivos adjuntos:
 

Ten en cuenta que en mi última prueba de importes inferiores a 100 sólo quedaban 4 importes: 17, 29, 41, 53. Todos ellos son primos (probablemente por accidente) y, además, están representados en la forma 2^n+prima de una sola manera (lo que no es por accidente). Eso es lo que me estresa cuando veo sus variantes de soluciones.

¿Y qué guardas en tu gran mesa? Parece que hay muchas cosas innecesarias. ¿Dónde tienen los sabios 5 millones de números en la cabeza?

Encontré los primeros 1.000 simples en Internet - hasta unos 8.000.