[Calcolo Discreto]Parte intera delle radici quadrate

BHK1
Volendo implementare il calcolo della radici quadrate in un ambito discreto, esiste un algoritmo che permetta di calcolare la parte intera della radice utilizzando solo operazioni elementari come addizioni e sottrazioni?
grazie

Risposte
Lord K
C'è un modo abbastanza interessante di determinare la radice quadrata di un numero mediante la soluzione di alcune equazioni diofantee. La soluzione è una frazione che approssima la radice quadrata, inoltre c'è quell'algoritmo che ti insegnano alle scuole superiori su come calcolarla "a mano"... a breve ti dò anche qualche hint in più e magari una traccia.

BHK1
ok, l'obbiettivo è riuscire a implementare la radice quadrata a livello hardware di un elaboratore, quindi utilizzare moltiplicazioni e divisioni è abbastanza complesso a questo livello.

Lord K
Mi riferivo a questo che mi sa che fa al caso tuo!

itpareid
cosa intendi con "livello hardware"?

BHK1
intendo componenti standard e fili di rame più memoria e registri.

itpareid
io proverei così: contatore (che si incrementa) e decoder, l'uscita del decoder viene elevata al quadrato e la sua uscita viene comparata con il tuo valore: quando il primo valore supera il secondo hai finito, nel senso che il valore che aveva il contatore prima dell'ultimo incremento è la parte intera della tua radice. può funzionare?

BHK1
"itpareid":
io proverei così: contatore (che si incrementa) e decoder, l'uscita del decoder viene elevata al quadrato e la sua uscita viene comparata con il tuo valore: quando il primo valore supera il secondo hai finito, nel senso che il valore che aveva il contatore prima dell'ultimo incremento è la parte intera della tua radice. può funzionare?

implementare moltiplicazioni che non siano in base binaria è abbastanza complesso inoltre calcolcolando così viene fuori un radice molto approssimata.

itpareid
bè l'uscita del decoder è digitale, poi l'hai chiesta te la parte intera della radice...

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.