Frage von styliiboy, 51

Benötige Hilfe in java (potenzieren)?

mann mus einen start und einen endwert angeben und diese Rechnung ist angegeben 1^2+2^2+3^2 /3 und das in For schleife.. wie schreibe ich die befehle bezug auf die obere Angabe ? public wert (int startwert, int endewert) { int i = 0;

    for(i =1;i<=3;i++)
    {
        
    }
    
}
Expertenantwort
von Suboptimierer, Community-Experte für Mathe, 25

Müsste es nicht for(i=startwert;i<=endwert;i++) lauten?

Dann könntest du in einer Zwischensumme die Zwischenergebnisse festhalten.

{
  Zwischensumme += i*i;
}
Zwischensumme /= (endwert-startwert+1);
Kommentar von styliiboy ,

doch sry mein fehler :D

Antwort
von varlog, 33

Die Rechnung, die du da angegeben hast ist ja nur für startwert=1 und endwert=3. Jetzt kann man nicht mit 100%iger Sicherheit sagen wie diese Rechnung im allgemeinen Fall auszusehen hat. Sehr wahrscheinlich ist aber:

(startwert^2 + (startwert + 1)^2 + (startwert + 2)^2 + .... + endwert^2) / (endwert - startwert + 1)

For-Schleife ist jetzt schon mal eine gute Idee. Allerdings nicht von 1 bis 3, sondern von startwert bis Endwert. Dann brauchst du noch eine Variable, in der du das Ergebnis speicherst und in jedem Schleifendurchlauf i^2 drauf addierst. (Potenzieren in Java mit Math.pow(b, e))

Zum Schluss teilst du noch durch (endwert - startwert + 1) und fertig.

Antwort
von DarkNightmare, 30

Hi,

deine Frage ergibt für mich keinen Sinn. 

Potenzieren war: 10^3 = 10*10*10

1^2+2^2+3^2 /3

Hier sehe ich, dass sich die erste Zahl immer ändert. Diese zählst du immer einen hoch. Also Startwert + 1 ?!

Doch wozu nun der Endwert? Soll das der Wert sein, wie oft hier gerechnet wird?

Wenn du in einer Schleife rechnest, denke daran außerhalb einen Wert zu speichern. Wird die Schleife verlassen, ist der Wert verloren. 

Gruß

Kommentar von styliiboy ,

genau und dann die anzahl wie oft man das gerechnet hat muss man dann halt das Ergebnis teilen

Kommentar von DarkNightmare ,

int i = 0;
int startwert, endwert;
int zwischensumme= 0;

for(i = startwert; i <= endwert; i++){
zwischensumme = zwischensumme + (math.pow (i,2));
}

zwischensumme = zwischensumme / endwert;


Nicht getestet, aber ich glaube so ist es gemeint.

Gruß

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten