Obidream ha scritto:No intendevo un'altra cosa, in pratica con un compilatore C puoi vedere il relativo output assembly ed ho notato che sostituisco tutte quelle macro consecutive con un for il codice è più lento perché evidentemente non lo ottimizza come vorrei.
Comunque la velocità su un singolo numero è irrilevante, per renderti conto delle differenze dovresti provare con zilioni di numeri, una cosa del genere:
L'
assembly lo conosco pochissimo, ed anche il
c, tuttavia ho lasciato libero spazio alla mia domanda in modo da ricevere buone risposte, convinto anche tutt' ora, che chi conosce il
c sappia ben programmare.
A prescindere dal linguaggio usato, sono ovviamente interessato sopratutto al risultato, tant' é che sono anche curioso di avere una risposta in tutto e per tutto
matematica
al quesito(che forse tu hai trovato, ed è $14$?), che è molto probabile sia è stata, e forse anche da secoli, scoperta.
Ho già rielaborato il codice della funzione, sostituendo il suo valore di
Input da
Int a
BigInteger, e per quanto riguarda la capacità di trasformare il radicando nella sua radice, essa sembra non avere alcun problema, anche nella velocità di calcolo.
Resta un fatto differente, tra i nostri codici, che nel mio il numero di ripetizioni di calcoli elementari(che è ciò che intendo, e forse erroneamente, con il termine iterazione), cresce con la lunghezza del radicando, mentre nel tuo, stando a quello che mi hai scritto, resta costante ed uguale a $14$. Poiché necessito di più tempo per assimilare i codici da te postati, non mi è chiaro il motivo di questa differenza. Il confronto matematico dovrebbe essere indipendente dal linguaggio informatico usato.
Avrei forse dovuto richiedere solamente un diagramma di flusso, ma non avrei(mai) potuto testare direttamente i codici.
Ora provo a leggere il libro da te consigliatomi per il primo quesito.
Buona serata e grazie intanto per l' intervento.
“Tutte le scienze esatte sono dominate dall'idea dell'approssimazione.” Bertrand Russell.