Esistono un paio di modi per trovare le radici quadrate integer utilizzando solo l'aritmetica dei numeri interi. Ad esempio this one. È una lettura interessante e anche una teoria molto interessante, in particolare per la mia generazione in cui tali tecniche non sono più così utili.Calcola la radice Nth con l'aritmetica dei numeri interi
L'elemento principale è che non è possibile utilizzare l'aritmetica in virgola mobile, in modo da escludere il metodo newton e le derivazioni. L'unico altro modo che conosco per trovare le radici è l'espansione binomiale, ma richiede anche l'aritmetica in virgola mobile.
Quali tecniche/algoritmi ci sono per calcolare radici ennesime integrali utilizzando solo l'aritmetica intera?
Modifica: Grazie per tutte le risposte finora. Sembrano tutti processi e miglioramenti leggermente più intelligenti. Non c'è modo migliore?
Edit2: Ok, quindi sembra che non ci sia un modo intelligente per farlo senza trial/miglioramenti e sia il metodo newton che una ricerca binaria. Qualcuno può fornire un confronto dei due in teoria? Ho eseguito una serie di punti di riferimento tra i due e li ho trovati abbastanza simili.
Qual è l'intervallo di valori di input richiesto? –
@PaulR, Idealmente potrebbe essere estensibile, ma penso che tu possa supporre che sia la base che il numero saranno interi a 32 bit (senza segno) per ora. – Matt
Quali operazioni su interi stai permettendo? Le radici quadrate sono un caso speciale perché è possibile estrarle utilizzando solo addizioni, sottrazioni e spostamenti. – Neil