Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Come posso velocizzare il mio programma?
Forum - C/C++ - Come posso velocizzare il mio programma?

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Dany (Member)
Pro


Messaggi: 129
Iscritto: 03/05/2012

Segnala al moderatore
Postato alle 12:01
Lunedì, 23/07/2012
Salve, so che l'oggetto non dice molto ma la situazione è questa:
Sto lavorando ad un'altra versione di Paint XY, questa volta che permette di fare equazioni in 3 dimensioni. Il problema è che essendoci tre variabili (X,Y,Z) per testare tutti i valori di queste e trovare le terne che rendono il primo membro dell'equazione uguale al secondo (e quindi verificano l'equazione) devo fare tre cicli nidificati, ma il programma impiega veramente troppo. Mi rendo conto che sia un metodo barbaro, ma per il momento non so cosa fare...voi avete idee?

Grazie in anticipo! :k:

PM Quote
Avatar
sarbaturino (Normal User)
Pro


Messaggi: 66
Iscritto: 25/04/2011

Segnala al moderatore
Postato alle 13:29
Lunedì, 23/07/2012
Se ho capito bene, deve far risolvere un'equazione a 3 incognite??

Se è così, ti consiglio di realizzarti un parser che riconosca tale equazione e te la risolva..

PM Quote
Avatar
Dany (Member)
Pro


Messaggi: 129
Iscritto: 03/05/2012

Segnala al moderatore
Postato alle 13:44
Lunedì, 23/07/2012
In pratica dovrei usare un generatore di parser?

PM Quote
Avatar
XBarboX (Member)
Guru


Messaggi: 945
Iscritto: 31/12/2008

Segnala al moderatore
Postato alle 14:50
Lunedì, 23/07/2012
La butto li. Potrebbe essere una cazzata ma è sempre un consiglio :)
Nel for invece di incrementare di 1 cerca di incrementare in base alle reali esigenze. Non stare nella precisione assoluta ma usa intervalli più ampi magari in base alla risoluzione dello schermo

PM Quote
Avatar
Dany (Member)
Pro


Messaggi: 129
Iscritto: 03/05/2012

Segnala al moderatore
Postato alle 19:13
Lunedì, 23/07/2012
Il fatto è che lo faccio già! E con un incremento maggiore finirei solo per peggiorare tutto...

PM Quote
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 15:01
Martedì, 24/07/2012
Secondo me conviene che a seconda del grado dell'equazione usi un diverso procedimento perchè se no è davvero barbaro (e inutile)
Per quelle di primo e secondo grado non penso sia un problema, ma quelle di terzo grado sono difficili, guardatele su Wikipedia. In ogni caso si tratta solo di capire le formule e applicarle nel programma.
http://it.wikipedia.org/wiki/Equazione_di_terzo_grado

PM Quote
Avatar
Dany (Member)
Pro


Messaggi: 129
Iscritto: 03/05/2012

Segnala al moderatore
Postato alle 12:20
Mercoledì, 25/07/2012
Grazie, ma
Ci sono 2 problemi:
1)non si tratta di equazioni già belle con i coefficienti ordinati, tipo una tanto comoda: 2*X^2+3*x-5=0  potrebbe essere scritta come x*x+x*x+x+x-x+x+x+10-15=0 e non saprei metterci mano.
2)Inoltre non sono semplici equazioni del tipo a(0)*x^n+...a(n) ma possono presentare anche funzioni del tipo:
sin(x^2+1)=cos(x*3)

E in questo caso francamente, non so come fare...

Suggerimenti?8-|:hail:

PM Quote
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 21:51
Mercoledì, 25/07/2012
creati un piccolo parser, normalizza l'equazione e risolvila

PM Quote
Avatar
Dany (Member)
Pro


Messaggi: 129
Iscritto: 03/05/2012

Segnala al moderatore
Postato alle 22:17
Mercoledì, 25/07/2012
Grazie mille!
Aspetta, ma ....da dove devo iniziare? Ho a malapena capito cosa sia...

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo