Minimum und Maximum
Wenn Sie die größere bzw. kleinere von zwei Zahlen ( int, long, float oder double) ermitteln möchten, stellt Ihnen Java min(int one, int two) und max(int one, int two) zur Verfügung, die jeweils die kleinere bzw. größere Zahl zurückliefern. Exponentialfunktionen, Logarithmus und Wurzel ziehen
Auch hierfür bietet Math Standardmethoden. Sie können mit der Methode sqrt(double d) die Quardatwurzel bzw. mit cbrt(double x) die dritte Wurzel aus x errechnen. Java eulersche zahl berechnen menu. Mit pow(double x, double y) erhalten Sie das Ergebnis der Rechnung x hoch y.
double base = 2;
double exp = 3;
double res = (base, exp);
(res); // 8
((res)); // 2
Möchten Sie den Exponentialwert von x zur Basis e (siehe Math. E) erhalten Sie diesen durch Aufruf der Funktion exp(double exp). Soll vom Ergebnis noch der Faktor eins abgezogen werden ( e x – 1), verwenden Sie stattdessen die Funktion expm1(double exp). Weitere Exponentialfunktionen sind scalb(float x, int factor) bzw. scalb(double x, int factor), welche als Ergebnis x * 2 factor zurückliefern, sowie hypot(double x, double y), welche zur Berechnung von sqrt(x 2 + y 2) dient.
Java Eulersche Zahl Berechnen Der
#1
wie kann ich die Fehlermeldung umgehen: possible loss of precision bzw. führt der Algorithmus zum gewünschtem Ergebnis? Java:
public class Euler
{
// instance variables - replace the example below with your own
double e, summand;
public Euler()
e=1. 0;
summand=1. 0;}
public long eulersche (double x){
if (x<=1){
return 1;}else{
return e+summand/eulersche (x-1);}}}
#2
long durch double ersetzen? #3
ja danke, aber ich bekomm 1, 61 usw heraus...
#5
wie ändere ich den code ab, damit e rauskommt? wiki hab ich schon angeschaut
#7
eulersche rekursiv berechnen
vollständige schreiben... Java eulersche zahl berechnen der. sätze, oder ja???? :L
führt der Algorithmus zum gewünschtem Ergebnis? keine ahnung was das gewünschte ergebnis gewesen sein soll. Es liefert jedenfalls nicht dasselbe wie
public static double e(){
double e=1, s=1; for(int i=1; i<100; s/=i, e+=s, i++); return e;}:autsch:
Würde mich freuen, wenn Du oder jemand anders einen alternativen Lösungsvorschlag zeigen könntest. #6
Ich habe schon lange nicht mehr programmiert und kenne die Java-Syntax nicht genau. Aber da Du schon "While - Do" erwähnt hast:
1. den Variablen vorab Werte zuweisen
(manchmal geht es auch ohne aber das ist zum einen eine grosse Fehlerquelle und auch unsauber! ) 2. dann (sinngemäss! ) "While (erg=! erg2)"... "Berechnung"... "do"
(alternativ auch "While (erg-erg2>Epsilon)" oder andere Vergleiche)
Ebenso gibt es wahrscheinlich auch in Java die "do-while" Schleife bei der die Abbruchbedingung erst am Ende geprüft wird. Das hat den Vorteil dass den Variablen schon am Anfang per Berechnung ein Wert zugewiesen wird und nicht per Definition (wobei ich Variablen mit undefiniertem Inhalt immer gescheut habe, bei grösseren Projekten verliert man schnell die Übersicht und baut sich so unbemerkt Fehler ein... Berechnen Sie die Eulersche Zahl näherungsweise | Mathelounge. )
Also: Syntax-Buch aufschlagen und nachlesen! #7
double erg, erg2 = 0, fak;
while(erg! = erg2) {
Wäre wohl das korrekteste... Syntaxfehler vorbehalten, habs jetzt nicht extra ausgeführt...
so fällt auf jeden Fall auch das n = 99 weg, was ja eigentlich ein "Fehler" in der Lösung war, da nicht geprüft wurde bis erg = erg2, sonder ob erg = erg2 ODER n > 99.