Hvordan lage en kvadratrot Funksjon i Java
For å finne kvadratroten av et tall, må du finne den inverse drift av multiplisere et tall med seg selv. Mens Java programmeringsspråk gir en innebygd "Math.sqrt ()" funksjonen til å beregne kvadratroten av et tall, aksepterer det bare en flyttalls dobbel verdi datatype. Imidlertid kan du finne deg selv ønsker å finne kvadratroten av et tall i en annen datatype. For dette formålet, kan du bygge en egendefinert funksjon for å beregne kvadratroten verdien manuelt.
Bruksanvisning
1 Definer en metode for å beregne kvadratroten. Du bør gi metoden et beskrivende navn som gjenspeiler dens funksjon. Sørg for at alle de nødvendige elementene i en metode er til stede, nemlig sin returtype, navn, vedlagt parentes metode argumenter og kroppen erklæring i bukseseler. For eksempel vil en hensiktsmessig måte få kvadratroten av et tall er:
offentlig BigDecimal får (BigDecimal n) {}
2 Fullfør legeme koden av fremgangsmåten ved å skrive en algoritme for å beregne en tilnærming av kvadratroten av et tall. Du kan bruke Newtons gjentakelse metode for å danne det matematiske grunnlaget for beregningen. I denne metoden, kan du beregne kvadratroten av et tall ved gjentatte ganger å løse den tilbakevendende ligningen xk + 1 = 1/2 (xk + n / xk) til tilnærming verdien kommer nær den faktiske kvadratroten verdi. For eksempel er det følgende et kodesegmentet i Java som utfører denne beregningen:
iterations = 0;
boolean mer = true;
while (flere) {
lastGuess = gjetning;
gjett = n.divide (gjetning, skala, BigDecimal.ROUND_HALF_UP);
gjett = guess.add (lastGuess);
gjett = guess.divide (TO, skala, BigDecimal.ROUND_HALF_UP);
trace ( "Next gjetning" + guess.toString ());
error = n.subtract (guess.multiply (gjett));
if (++ iterasjoner> = maxIterations) {
mer = false;
}
else if (lastGuess.equals (gjetning)) {
mer = error.abs () .compareTo (en)> = 0;
}
}
tilbake gjetning;
3 Definere andre som støtter metoder til hovedtorget-roten finne metoden, når det er nødvendig. Du kan finne deg selv ønsker å definere metoder for å finne den opprinnelige tilnærming verdi, beregne feil og sette antall gjentakelser. For eksempel vil den følgende kode den første tilnærmelse verdi som skal brukes i hoved beregningen:
private static BigDecimal getInitialApproximation (BigDecimal n) {
BigInteger integerPart = n.toBigInteger ();
int lengde = integerPart.toString () .length ();
if ((lengde 2%) == 0) {
lengde--;
}
lengde / = 2;
BigDecimal gjette = ONE.movePointRight (lengde);
tilbake gjetning;
}
4 Test din kvadratrot metoden ved å kalle det, og skriver ut resultatet på skjermen. For eksempel:
System.out.println ( "Computing kvadratroten av");
sqrt = app.get (n);