För att hitta kvadratroten av ett nummer , måste du hitta den omvända operationen att multiplicera ett tal med sig själv . Medan programmeringsspråket Java ger en inbyggd " Math.sqrt ( ) "-funktion för att beräkna kvadratroten av valfritt antal , godtar endast ett flyttal dubbla värdet datatyp. Däremot kan du själv behöver för att hitta kvadratroten av ett tal i en annan datatyp . För detta ändamål , kan du bygga en egen funktion för att beräkna kvadratroten värdet manuellt . Instruktioner
en
Definiera en metod för att beräkna kvadratroten . Du bör ge metoden ett beskrivande namn som speglar dess funktion . Se till att alla nödvändiga delar av en metod är närvarande , nämligen dess returtyp , namn , bifoga parentes för metod argument och kroppen förklaring hängslen . Till exempel är en lämplig metod för att få kvadratroten av ett nummer :
offentliga BigDecimal get ( BigDecimal n ) { }
2
Komplett kroppen koden för metoden genom att skriva en algoritm för att beräkna en tillnärmning av kvadratroten av ett tal. Du kan använda Newtons Iteration metod för att bilda den matematiska grunden för din beräkning . I denna metod , kan du beräkna kvadratroten av ett nummer genom att upprepade gånger lösa återkommande ekvationen xk + 1 = 1/2 ( xk + n /xk ) tills approximation värdet ligger nära det verkliga kvadratroten värde . Till exempel är följande en kodsegmentet i Java som utför denna beräkning :
iterationer = 0 ;
boolean mer = true;
samtidigt ( mer ) {
lastGuess = gissa ,
gissa = n.divide ( gissning , skala , BigDecimal.ROUND_HALF_UP ) ;
gissa = guess.add ( lastGuess ) ;
gissa = guess.divide ( TVÅ , skala , BigDecimal.ROUND_HALF_UP ) ;
trace ( " Next gissning " + guess.toString ( ) ) ;
error = n.subtract ( guess.multiply ( gissning ) ) ;
om (+ + iterationer > = maxIterations ) {
mer = false;
}
else if ( lastGuess. equals ( gissning ) ) {
mer = error.abs ( ) compareTo ( ONE ) > = 0; .
}
}
avkastning gissning , Addera 3
Definiera andra stödjande metoder till huvudtorget - root hitta metoden , när det är nödvändigt . Du kan hitta dig själv att behöva definiera metoder för att hitta den första approximationen värde , beräkna felet och ange antal iterationer . Till exempel finner följande kod initiala approximation värde som kan användas i den huvudsakliga beräkning :
private static BigDecimal getInitialApproximation ( BigDecimal n ) {
BigInteger integerPart = n.toBigInteger ( ) ; < . br >
int längd = integerPart.toString ( ) längd ( ) ;
if ( ( längd % 2 ) == 0 ) {
längd - ;
}
längd /= 2 ;
BigDecimal gissning = ONE.movePointRight ( längd ) ,
retur gissning ,
}
4
Testa din kvadratroten metoden genom att anropa den och skriva ut resultatet på skärmen . Till exempel:
System.out.println (" Computing kvadratroten av ");
sqrt = app.get ( N);