Potenzieren ohne vorgegebene Methoden!

Status
Nicht offen für weitere Antworten.

Lexe

Mitglied
Hi,

Ich soll eine Aufgabe machen, die mir die k-te Wurzel aus a zieht... da die funktion Xn^k-1 enthält und ich keine Methoden, wie "Math.pow(x, k - 1)" verwenden darf, weiß ich jetzt nicht wie ich sonst Xn^k-1 bzw. x^y oder b^x ausrechnen soll... :oops: Ich würde mich sehr freuen wenn mir jemand weiter helfen könnte!

Vielen Dank schon mal im Vorraus xD!

mfG

Lexe :wink:
 

Einwegdose

Aktives Mitglied
Bitte schön ;)

Code:
		public static double hoch(double x, int k) {
		boolean neg = false;
		double tmp = 1;
		if (k < 0) {
			k *= -1;
			neg = true;
		}
		while ( k-- > 0 )
			tmp *= x;
		if (neg)
			return 1 / tmp;
		return tmp;
	}
 

Milo

Bekanntes Mitglied
Hi,

Problem in drei Methoden zerlegt:

Code:
  public static double ABS(double d){
    return (d<0)?-1.0*d:d;
  }
  
  public static double POW (double a, int k) {
    for (int i=1; i<k; i++)
      a *= a;
    return a;
  }

  public static double SQRT(int a, int k) {
    double x0=a/k, x1=x0;

    while( true ){
      x1 = 1.0/k * ( (k-1)*x0 + a / POW(x0,k-1));
      if (ABS(x0-x1) < 0.000001)
        break;
      x0 = x1;
    }
    return x1;
  }


System.out.println( SQRT(7,3) );   //1.912931182772389

Da Du keine Fremdklassen nehmen sollst, habe ich ABS, POW und SQRT mal erzeugt. Ich denke die Namen sind selbsterklärend.

X0 ist immer der Wert aus der vorherigen Iteration und X1 der aktuelle. Die Abbruchbedingung ist, dass die Differenz zwischen beiden keiner 0.000001 ist. Ist dies nicht der Fall, übergibt X1 seinen Wert an X0 und die Prozedur geht von vorn los.

Gruß Micha
 
G

Guest

Gast
danke erstmal für die schnelle antwort

irgendwie kommen bei mir fehler....

mit meinem kamen ich schon soweit:



public class Wurzel1 {


public static void main(String[] args) {



double a, z,k, x1, x0, xn;
Out.print ("Wurzel ziehen : ");
a = In.readInt();
Out.print("Die wievielte Wurzel ziehen: ");
k = In.readInt() ;



x0 = Math.pow(a, 1.0/k);
xn = x0 ;
z = Math.pow(xn,k-1);

x1 = (1/k)*((k-1)*xn + ( a /z ));

Out.print("Ergebnis : " + x1);

}

}




Das funktioniert, aber da fehlen mir die methoden, ich weiß nicht wie ich die methoden rein bekomme

weiß du es?
 
G

Guest

Gast
danke erstmal für die schnelle antwort

irgendwie kommen bei mir fehler....

mit meinem kamen ich schon soweit:



public class Wurzel1 {


public static void main(String[] args) {



double a, z,k, x1, x0, xn;
Out.print ("Wurzel ziehen : ");
a = In.readInt();
Out.print("Die wievielte Wurzel ziehen: ");
k = In.readInt() ;



x0 = Math.pow(a, 1.0/k);
xn = x0 ;
z = Math.pow(xn,k-1);

x1 = (1/k)*((k-1)*xn + ( a /z ));

Out.print("Ergebnis : " + x1);

}

}




Das funktioniert, aber da fehlen mir die methoden, ich weiß nicht wie ich die methoden rein bekomme

weiß du es?
 

Milo

Bekanntes Mitglied
Hi,

Anonymous hat gesagt.:
irgendwie kommen bei mir fehler....

Schön für Dich; bei mir kommt keiner, weil Du vermutlich Copy & Paste einfach genutzt hast ohne drüber nachzudenken.

Code:
public class SQRT {

  public static double ABS(double d){
    return (d<0)?-1.0*d:d;
  }
  
  public static double POW (double a, int k) {
    for (int i=1; i<k; i++)
      a *= a;
    return a;
  }

  public static double SQRT(int a, int k) {
    double x0=a/k, x1=x0;

    while( true ){
      x1 = 1.0/k * ( (k-1)*x0 + a / POW(x0,k-1));
      if (ABS(x0-x1) < 0.000001)
        break;
      x0 = x1;
    }
    return x1;
  }


  public static void main(String[] args) {
     System.out.println( SQRT(7,3) );
  }
}

Anonymous hat gesagt.:
mit meinem kamen ich schon soweit:
[/code]

Aha. Wenn Du Math.pow(<basis>, <exponent>) hättest nutzen dürfen, wäre die ganze Aufgabe sinnfrei, meinst nicht? Insofern ist gerade dieser Ausdruck:

Code:
x0 = Math.pow(a, 1.0/k);

interessant, da er bereits das Endergebnis enthält und keiner weiteren Berechnung bedarf. Aus Deiner Aufgabenstellung ging doch hervor, das x0=a/k sein soll, oder?

Anonymous hat gesagt.:
Das funktioniert[/code]
Alles andere wäre auch ein Bug in der Math-Klasse. Es funktioniert auch viel kürzer. Um bei Deinem Beispielcode zu bleiben. Du kannst Dir die Berechnung von x1 sparen:

Code:
x0 = Math.pow(a, 1.0/k); 
//xn = x0 ; 
//z = Math.pow(xn,k-1); 
//x1 = (1/k)*((k-1)*xn + ( a /z )); 
x1 = x0; //x0 ist bereits das Ergebnis
Out.print("Ergebnis : " + x1);


Anonymous hat gesagt.:
ich weiß nicht wie ich die methoden rein bekomme
Was hast Du versucht?

Gruß Micha
 

Milo

Bekanntes Mitglied
Hi,

Anonymous hat gesagt.:
irgendwie kommen bei mir fehler....

Schön für Dich; bei mir kommt keiner, weil Du vermutlich Copy & Paste einfach genutzt hast ohne drüber nachzudenken.

Code:
public class SQRT {

  public static double ABS(double d){
    return (d<0)?-1.0*d:d;
  }
  
  public static double POW (double a, int k) {
    for (int i=1; i<k; i++)
      a *= a;
    return a;
  }

  public static double SQRT(int a, int k) {
    double x0=a/k, x1=x0;

    while( true ){
      x1 = 1.0/k * ( (k-1)*x0 + a / POW(x0,k-1));
      if (ABS(x0-x1) < 0.000001)
        break;
      x0 = x1;
    }
    return x1;
  }


  public static void main(String[] args) {
     System.out.println( SQRT(7,3) );
  }
}

Anonymous hat gesagt.:
mit meinem kamen ich schon soweit:
[/code]

Aha. Wenn Du Math.pow(<basis>, <exponent>) hättest nutzen dürfen, wäre die ganze Aufgabe sinnfrei, meinst nicht? Insofern ist gerade dieser Ausdruck:

Code:
x0 = Math.pow(a, 1.0/k);

interessant, da er bereits das Endergebnis enthält und keiner weiteren Berechnung bedarf. Aus Deiner Aufgabenstellung ging doch hervor, das x0=a/k sein soll, oder?

Anonymous hat gesagt.:
Das funktioniert[/code]
Alles andere wäre auch ein Bug in der Math-Klasse. Es funktioniert auch viel kürzer. Um bei Deinem Beispielcode zu bleiben. Du kannst Dir die Berechnung von x1 sparen:

Code:
x0 = Math.pow(a, 1.0/k); 
//xn = x0 ; 
//z = Math.pow(xn,k-1); 
//x1 = (1/k)*((k-1)*xn + ( a /z )); 
x1 = x0; //x0 ist bereits das Ergebnis
Out.print("Ergebnis : " + x1);


Anonymous hat gesagt.:
ich weiß nicht wie ich die methoden rein bekomme
Was hast Du versucht?

Gruß Micha
 

PAT_McJAVA

Mitglied
zufälliger weiße hatte ich das gleiche Problem :wink:
...hab da auch reinzufällig ne Lösung die dir recht gut gefallen wird :)
Hier meine Lösung mit einer Funktion:

Code:
class Wurzel{

  static final double VERGLEICH=0.000001;

    //Festlegen der Startwerte und Berechnung x^k-1
  static double power(double basis, int exp){ 
    int helper=1;
    double xmine=basis;
    
      //Schleife zur Berechnung x^k-1
    while(helper<(exp-1)){
      xmine=xmine*basis;
      ++helper;
    }
    
      //Wert Rückgabe an Hauptprogramm
    return xmine;
  }

  public static void main (String[]arg){
    double x,count;
    int a,k;

      //Eingabeabfrage und Bestimmung der Startwerte
    Out.print("Wurzel ziehen aus: ");
    a=In.readInt();
    Out.print("Die wievielte Wurzel ziehen : ");
    k=In.readInt();
    x=a/k;

      //Schlefe der Wurzelformel
    do{
      count=x;
      x=(((k-1)*x+(a/power(x,k)))/k);
    }while((count-x)*(count-x)>(VERGLEICH*VERGLEICH));

      //Ausgabe
    Out.println("Ergebnis: " + x );
    }
  }

(Wenn du mal Zeit finden solltest würd mich mal interressieren ob du nicht mehr mit mir zutun hast (denke du studierst auch und hattest die gleichen probleme mit Fr.Leopolds aufgabe wie ich))

mfg
PAT_McJAVA (nein ich bin keiner der Korrektöre)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P 2n Potenzieren ohne Math.pow oder pow Java Basics - Anfänger-Themen 8
Jats Potenzieren ohne pow Java Basics - Anfänger-Themen 22
P Java 2n Potenzieren Java Basics - Anfänger-Themen 1
E Macht Java Rechenfehler beim Potenzieren und Mod? Java Basics - Anfänger-Themen 5
B Schnelles Potenzieren Java Basics - Anfänger-Themen 5
C In Java potenzieren Java Basics - Anfänger-Themen 12
O Potenzieren in Java Java Basics - Anfänger-Themen 2
L Potenzieren mit for-Schleife Java Basics - Anfänger-Themen 2
T Potenzieren Java Basics - Anfänger-Themen 5
V Schnelles Potenzieren Java Basics - Anfänger-Themen 10
D BigInteger potenzieren und anschließend Modulo Java Basics - Anfänger-Themen 7
G Potenzieren Java Basics - Anfänger-Themen 6
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
V JSON-Objs aus JSON-Obj filtern und löschen (Manipulation ohne Kenntnis der vollst. Struktur) Java Basics - Anfänger-Themen 12
O HashTable kann ohne Performance-Verlust in Multithreaded-Anwendungen eingesetzt werden. Java Basics - Anfänger-Themen 6
T Mehrere if bedingungen ohne & Java Basics - Anfänger-Themen 2
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
Mugetsu35 ArrayList Update ohne Index Java Basics - Anfänger-Themen 6
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
W GUI - JButton ohne Funktion? Java Basics - Anfänger-Themen 24
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
R Buttons ohne Funktion Java Basics - Anfänger-Themen 2
JavaBeginner22 TextArea, ohne Zeilenumbruch? Java Basics - Anfänger-Themen 4
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
S Was macht ++ ohne Schleife? Java Basics - Anfänger-Themen 4
berserkerdq2 An selbst ersteller txt Datei immer Text dranhängen, ohne den vorherign Text zu löschen Java Basics - Anfänger-Themen 8
U Methode wird genutzt, ohne dass ich die aufrufe? Java Basics - Anfänger-Themen 4
B Jar Dateien ohne IDE verwenden? Java Basics - Anfänger-Themen 1
M Wie verknüpfe ich eine Bedingung mit einer Methode ohne if-Verzweigung & Bedingungsoperator? Java Basics - Anfänger-Themen 2
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
S Chars vergleichen ohne Betrachtung der Groß und Kleinschreibung Java Basics - Anfänger-Themen 7
javapingu Variablenwerte ändern ohne return Statement? Java Basics - Anfänger-Themen 7
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
E Meine JCombobox werte an ohne selectiert zu haben Java Basics - Anfänger-Themen 6
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
M for schleife ohne geschweifte Klammer Java Basics - Anfänger-Themen 15
KogoroMori21 Variable im Parameter und Ohne Java Basics - Anfänger-Themen 5
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
L Zufälligen Zahlencode, ohne mehrfacher Verwendung einer Ziffer Java Basics - Anfänger-Themen 15
Sinan Arrays auflisten ohne Wiederholung Java Basics - Anfänger-Themen 28
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
T Variable in for Schleife ansprechen ohne Array ? Java Basics - Anfänger-Themen 25
J Programm beenden ohne System.exit() oder Runtime.exit() Java Basics - Anfänger-Themen 5
S Teilen ohne Rest Java Basics - Anfänger-Themen 15
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
C Programm ausführen ohne JRE? Java Basics - Anfänger-Themen 3
C NumberFormatException: null ohne Ausnahmebehandlung stoppen Java Basics - Anfänger-Themen 7
P Methode trim() ohne StringBuilder Java Basics - Anfänger-Themen 1
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
K Programm stoppt einfach ohne Grund Java Basics - Anfänger-Themen 4
C Projekte in 2 versch. Arbeitsbereichen: auf ein Projekt verweisen (ohne Fehler zu bekommen) Java Basics - Anfänger-Themen 8
L Zufälliges Objekt aus der ArraylList ohne java.util.Random Java Basics - Anfänger-Themen 56
Z Methode zum Heraufinden von Anagrammen ohne Java API, Ausnahme String Java Basics - Anfänger-Themen 14
Z Attribut ändern ohne Kontrollstruktur Java Basics - Anfänger-Themen 2
R Boolean value ohne Kontrollstrukturen ändern Java Basics - Anfänger-Themen 5
C Wie habt Ihr angefangen mit der Java Programmierung, ohne Programmiervorkenntnisse Java Basics - Anfänger-Themen 8
S Klassenmethode ohne static Java Basics - Anfänger-Themen 2
M Prüfen auf null ohne NPE Java Basics - Anfänger-Themen 1
M Bubblesort ohne Array Java Basics - Anfänger-Themen 30
J Array vertauschen ohne ein neues anzulegen?! Java Basics - Anfänger-Themen 10
F Hilfe - Wahrheitswert überprüfen ohne If Java Basics - Anfänger-Themen 2
ZH1896ZH Java-SemesterTest ohne Lösung :( Java Basics - Anfänger-Themen 47
V Erste Schritte Berechnen von Sinus; sin(x) ohne Math.* Java Basics - Anfänger-Themen 1
C Teilbarkeit ohne "if" Java Basics - Anfänger-Themen 3
M Double Wert nach n abschneiden ohne zu runden Java Basics - Anfänger-Themen 1
B Input/Output System.out.print mit und ohne "" Java Basics - Anfänger-Themen 5
J Mein Programm beendet sich ohne mein Zutun Java Basics - Anfänger-Themen 9
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
D Eingabe einscannen, ohne vorher einen Datentypen anzugeben? Java Basics - Anfänger-Themen 1
AnnaBauer21 GridBagLayout JLabel weightx: Unterschiedliche Breite mit & ohne Text Java Basics - Anfänger-Themen 6
F Buchstaben in einem String vertauschen (Ohne replace) Java Basics - Anfänger-Themen 10
R for schleife ohne klammer Java Basics - Anfänger-Themen 14
O Primzahl rekursiv mit einem Wert ohne i, wie? Java Basics - Anfänger-Themen 6
C Problem: PC ohne Internet und keine Möglichkeit Programme zu laden Java Basics - Anfänger-Themen 5
C unverständlicher Code Attribute ohne Datentyp, wie geht das? Java Basics - Anfänger-Themen 8
C Konstruktor mit und ohne Parameterliste Java Basics - Anfänger-Themen 13
B Potenzrechnung mit WindowBuilder ohne math.pow() Java Basics - Anfänger-Themen 1
Jackii ArrayList ausgabe ohne Dopplung Java Basics - Anfänger-Themen 11
E Pfade eines Baums angeben ohne Rekursion Java Basics - Anfänger-Themen 20
J Division ohne Arithmetische Funktion Java Basics - Anfänger-Themen 2
D .txt überschreiben mit BufferedWriter ohne reset Java Basics - Anfänger-Themen 6
H Cäsar chiffrierung ohne if-Anweisung Java Basics - Anfänger-Themen 5
A Input/Output System.out Ausgabe aktualisieren, ohne Konsole vollzuspamen Java Basics - Anfänger-Themen 2
B Potenzen ohne Math.pow Java Basics - Anfänger-Themen 4
A Methoden Unterscheid zwischen public und ohne Java Basics - Anfänger-Themen 9
M Liste ohne Duplikate Java Basics - Anfänger-Themen 8
S Rekursiver InsertionSort ohne Schleife Java Basics - Anfänger-Themen 7
4 Median ohne Array Rausbekommen Java Basics - Anfänger-Themen 8
L Auf Methoden einer Subklasse zugreifen ohne Typecast ? Java Basics - Anfänger-Themen 6
5 for-Schleife ohne 3 Angaben Java Basics - Anfänger-Themen 2
D Sortiertes Array mischen ohne Duplikat Java Basics - Anfänger-Themen 5
M Email versenden Outlook, attached File, ohne Anmeldung Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben