10000 Glieder

Noob26

Mitglied
Hallo

wieder eine Aufgabe wo ich eure Expertise benötige :)

Berechnen Sie die Summe für die ersten 100000 Glieder der folgenden Reihe und geben Sie diese in
der Konsole aus.

11953

das habe ich:

Code:
public static void main(String[] args)
    {
        double summe = 0;
        double glied;
        int anzahlGlieder = 10000;
        
        for (int i = 1; i <= anzahlGlieder; i++)
        {
            glied = (double)i / ((i + 1.0) * (i - 0.5));
            if ((i % 4 == 1) || (i % 4 == 0))
            {
                summe += glied;
            }
            else
            {
                summe -= glied;
            }
        }
        
        System.out.println("Die Summe der " + anzahlGlieder + ". Gliederreihe lautet: " + summe);
    }

}

ist das richtig? LG
 
K

kneitzel

Gast
Sieht erst einmal gut aus. Hast Du es einfach mal nachgerechnet? Kann man ja mit kleinen i auch mal von Hand nachrechnen. Dann würde man ggf. mitbekommen, wenn man irgendwo einen cast vergessen haben sollte. Aber ich konnte da erst einmal kein Problem beim draufschauen sehen.
 

Noob26

Mitglied
Danke euch - habs geändert @Tobias-nrw :

(wenn du das meintest) ;)

Code:
    public static void main(String[] args)
    {
        double summe = 0;
        double glied;
        int anzahlGlieder = 10000;
        
        for (int i = 0; i <= anzahlGlieder; i++)
        {
            glied = (double)i / ((i + 1.0) * (i - 0.5));
            if ((i % 4 == 1) || (i % 4 == 0))
            {
                summe += glied;
            }
            else
            {
                summe -= glied;
            }
        }
        
        System.out.println("Die Summe der " + anzahlGlieder + ". Gliederreihe lautet: " + summe);
    }

}
 

Noob26

Mitglied
Ich habe dafür einen halben Tag benötigt also bitte verzeih mir wenn ich deinen Input nicht auf Anhieb verstehe, ich bin kein Java-Developer - ich versuche mich gerade dies zu lernen. Also nein habe ich nicht gemessen. Habe auch keinen Schreibtischtest durchgeführt. Könntest du mir deinen Ansatz näher erleutern ich tue mir da sehr schwer. Danke lg
 
X

Xyz1

Gast
Java:
public static void main(String[] args) {
    /* Variante 1 */
    double summe = 0;
    double glied;
    int anzahlGlieder = 10000;

    for (int i = 0; i < anzahlGlieder; i++) {
        glied = (double) (i + 1.0) / ((i + 2.0) * (i + 1.0) - (i + 2.0) * 0.5);
        if (((i + 1) % 4 == 1) || ((i + 1) % 4 == 0)) {
            summe += glied;
        } else {
            summe -= glied;
        }
    }
    System.out.println("Die Summe der " + anzahlGlieder + ". Gliederreihe lautet: " + summe);


    /* Variante 2 */
    summe = 0;
    anzahlGlieder = 10000;

    for (int i = 0; i < anzahlGlieder; i++) {
        glied = i / ((i + 2) * (i + 1) - (i + 2) * 0.5) + 1 / ((i + 2) * (i + 1) - (i + 2) * 0.5);
        if (((i + 1) % 4 == 1) || ((i + 1) % 4 == 0)) {
            summe += glied;
        } else {
            summe -= glied;
        }
    }
    System.out.println("Die Summe der " + anzahlGlieder + ". Gliederreihe lautet: " + summe);
}
Ergebnis
Code:
Die Summe der 10000. Gliederreihe lautet: 0.503464657546094
Die Summe der 10000. Gliederreihe lautet: 0.5034646575460938

Variante 2 ist genauer. (Das meinte ich mit Ungenauigkeit, von der ich sprach)
 

Neue Themen


Oben