[Matematica pura, fisica, chimica, ecc.: problemi di allenamento del cervello non legati in alcun modo al commercio - pagina 452

 
Mathemat:

In generale, bisogna eliminare le restrizioni sull'importo. Tutto il ragionamento rimane essenzialmente lo stesso, solo più di questo.

A giudicare dal fatto che nella citazione l'uomo aveva bisogno del Cray 1, il suo algoritmo era meno ottimizzato del tuo :)

1. Non si può rimuovere il limite dell'importo - è parte del problema. Somme diverse danno risultati diversi.

2. In tutta serietà, ci ho provato con tutte le mie forze. :)

Diverse caratteristiche rendono lo script veloce. La prima, e probabilmente la più "veloce", è la tabella di decomposizione dei moltiplicatori, che viene costruita UNA volta sola all'inizio.

Permette di rifiutare di costruire decomposizioni in ogni ciclo di controllo dei numeri - è sufficiente guardare nella tabella.

MA. (!) :(

Ora siamo bloccati dalle sue dimensioni.

Tuttavia, se non costruiamo la tabella, ma semplicemente la decomponiamo in moltiplicatori ogni volta, allora non possiamo fare a meno di Cray - ci vorranno mesi per risolvere il problema.

Resumo: c'è qualcos'altro che dobbiamo ottimizzare. :)

Credo.

 
MetaDriver:

Pensare.

Non si è ancora pensato a niente di radicale. Ma sono riuscito ad arrivare 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) //+---- Importo massimo = 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.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

.

Le principali idee di ottimizzazione sono intorno alla riduzione della dimensione della tabella memorizzando solo il primo moltiplicatore nelle celle e ottenendo il successivo dinamicamente per riferimento nella stessa tabella.

Tuttavia si tratta di un risparmio di spazio in tempo che sarà naturalmente minore che nel caso della costruzione di un numero di fattori ogni volta da zero, ma ancora notevolmente più di adesso.

Sto pensando di nuovo.

 

No. Non farò uno scambio spazio-tempo. Anche al ritmo attuale di 6900 conta per circa 3 minuti. // Ho mentito, circa 2 :)

Nel caso in cui si faccia riferimento alla tabella, il numero di calcoli aumenterà quadraticamente.

È vero, quando si calcola ogni volta l'aumento è esponenziale, ma è qualcosa di cui essere orgogliosi, è comunque un rallentamento.


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 ========================


A 7000 - Errore 4004: "ArrayResize(): La quantità di memoria richiesta supera i due giga. Devi essere più modesto".

Se qualcuno qui ha 64x bit + Win64 + MT5 64x + 8 giga di memoria, si può arrivare fino a 10 mila, allora è una rottura comunque.

Suggerisco di fermarci qui. In realtà i Saggi originali sono stati nel culo da molto tempo ormai.

 

Sì, puoi smettere, questo è sicuro. Avete già creato un miracolo che ha superato Cray.

Eppure lo schema sui numeri rimane, cioè uno di essi è un grado di due. Ma ci sono casi dubbi - quando un numero dispari non è primo:

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

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

 
Mathemat:

1. Sì, puoi smettere, questo è sicuro. Hai già creato un miracolo che Cray ha saltato.

2. Eppure lo schema sui numeri rimane, cioè uno di loro è un grado di due. Ma ci sono casi dubbi - quando un numero dispari non è primo:

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

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

1. Sono d'accordo. :)

2. Sta suggerendo di controllare su un computer? Potremmo, ma sarebbe una lunga stampa. Troverò il modo.

 
Finalizzerò e perfezionerò la mia funzione di controllo della somma per un vincolo arbitrario. Si ha l'impressione che le soluzioni diventino sempre meno frequenti al crescere del vincolo.
 
Mathemat:
Finirò e perfezionerò la mia funzione di controllo della somma per un vincolo arbitrario. Si ha l'impressione che al crescere del vincolo, le soluzioni diventino sempre più rare.

Non è un fatto:

2011.01.15 22:52:56 MetaSage (EURUSD,M1) //+---- Importo massimo = 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 ========================

Ci sono già tredici soluzioni.

 
MetaDriver: Già tredici soluzioni.

Non è un fatto. Questi sono i candidati alla decisione. L'hai accettato tu stesso. E le "soluzioni" con una stranezza composita mi rendono molto inquieto - anche se non posso provare questo sospetto.

Ma la tendenza è incoraggiante. Ti stai avvicinando ai diecimila. I saggi sono saggi, e noi siamo programmatori.

 
Mathemat:

1. Non è un fatto. Questi sono i candidati alla decisione. L'hai accettato tu stesso. E le "soluzioni" con una stranezza composita mi rendono molto inquieto - anche se non posso provare questo sospetto.

2. Ma la tendenza è incoraggiante. Ti stai avvicinando ai 10.000 dollari.

1. Non ci ho pensato bene. Da allora ho molta più fiducia nella mia sceneggiatura. :)

Perché quando ho cercato di fare un "checker", mi sono reso conto che non c'è niente da controllare - tutto funziona correttamente.

Tuttavia, si può ancora fare una stampante - per esempio, per incasinare il forum Mechmaty con il bottino... :))))

// E allo stesso tempo per calmarvi. ;)

Devo solo capire cosa stampare.

2. Le cose stanno così.Fallo firmare.


2011.01.15 23:18:16 MetaSage (EURUSD,M1) //+---- Importo massimo = 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 ========================


Allego la versione vincente dello script.

File:
 

Notate che nella mia ultima prova per importi inferiori a 100 erano rimasti solo 4 importi: 17, 29, 41, 53. Tutti loro sono primi (probabilmente per caso), e, inoltre, sono rappresentati come 2^n+primi in un unico modo (il che non è per caso). È questo che mi stressa quando guardo le vostre varianti di soluzioni.

E cosa tieni nel tuo grande tavolo? Sembra che ci sia un sacco di roba inutile. Dove i saggi hanno 5 milioni di numeri in testa?

Ho trovato i primi 1.000 semplici su internet - fino a circa 8.000.