Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » harmonische Reihe c++ » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen harmonische Reihe c++
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Marcell99
Eroberer


Dabei seit: 14.11.2015
Beiträge: 53

harmonische Reihe c++ Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Die harmonische Reihe s = lim sn mit
n??
s n = ( n) sigma (k=1) 1/k

ist wohl die bekannteste divergente s = ? Reihe in der Mathematik.
a) Schreiben Sie ein C/C++ Programm welches für gegebenes n element N den Wert von summe = sn bestimmt. Dabei soll summe im Format float berechnet werden. Testen Sie Ihr Programm für n = 2^i mit i = 5,10,...,30. Was fällt Ihnen hierbei auf?


Meine Ideen:
weiß jemand wie das so laufen lassen kann damit es in fünferschritten verläuft (wird das eher mit einer while schleife gemacht ?)


#include <iostream>

using namespace std;

int main(int argc, const char * argv[]) {

float summe;

int k, n;

cout<<"Geben Sie n ein"<<endl;
cin>>n;

summe=1;

for (k=1; 30>k; k=k+(n*5)) {
summe=summe+1./k;
}

cout<<"Die Summe bträgt "<<summe<<endl;



return 0;
}

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Marcell99: 21.11.2015 17:15.

21.11.2015 17:12 Marcell99 ist offline E-Mail an Marcell99 senden Beiträge von Marcell99 suchen Nehmen Sie Marcell99 in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
2:
3:
4:
5:
6:
7:
for (i = 5; i <= 30; i += 5)
{
	for (k = 1; k <= 2<<i; k++)
	{
		//Summe berechnen
	}
}


__________________
Syntax Highlighting fürs Board (Link)
21.11.2015 17:52 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Marcell99
Eroberer


Dabei seit: 14.11.2015
Beiträge: 53

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

k <=2<<i macht man das immer wenn der Exponent unbekannt ist ??

egal was ich für eine zahl für n einsetze stehen immer die gleichen Lösungen kann sowas sein ?

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Marcell99: 21.11.2015 18:06.

21.11.2015 18:04 Marcell99 ist offline E-Mail an Marcell99 senden Beiträge von Marcell99 suchen Nehmen Sie Marcell99 in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich dachte, du willst das n im Programmcode wählen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
#include <iostream>

using namespace std;

int main(int argc, const char * argv[]) {
	for (int i = 5; i <= 30; i += 5)
	{
		double sum = 0;
		for (int k = 1; k <= 2<<i; k++)
		{
			sum += 1.0/k;
		}
		cout << "n = 2^" << i << ": " << sum << endl;
	}
	return 0;
}


__________________
Syntax Highlighting fürs Board (Link)
21.11.2015 18:31 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Marcell99
Eroberer


Dabei seit: 14.11.2015
Beiträge: 53

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

ahso okay jetzt versteh ich auch die Lösung.

das muss ich jetzt auf diese Aufgabe beziehen
ich muss nun die folgeglieder addieren

Modifizieren Sie ihr Programm so, dass Sie das erste Folgeglied als Startwert für summe setzen und dann jeweils zuerst blockweise die Summe der Folgeglieder für Blöcke der Größe 2^k für k = 0, 1, 2, . . . , m berechnet und diese danach zu summe addiert, d.h.

summe = 1 + 1/2 + (1/3+1/4) + (1/5+1/6+1/7+1/8)+ .......
2^0 2^1 2^2 Terme

Beachten Sie, dass zwischen m und n die Relation n = 2^(m+1) besteht und testen Sie ihr Programm wiederum für m = 4, 9, . . . , 29. Vergleichen Sie die Ergebnisse mit den Ergebnissen aus Teil a). Was fällt Ihnen auf und wie erklären Sie sich das unterschiedliche Verhalten?
Bemerkung. Das exakte Ergebnis von sn lässt sich approximieren durch sn = log(n) + 0.5772156649.

hier wird ja das Ergebnis immer mit dem anderen folgeglied addiert, aber wie kann man das darstellen

der startwert ist ja hier eins

summe=1;

for (k=0; m <=2<<k; k++) {
summe=summe+1./m;
}

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Marcell99: 21.11.2015 18:56.

21.11.2015 18:52 Marcell99 ist offline E-Mail an Marcell99 senden Beiträge von Marcell99 suchen Nehmen Sie Marcell99 in Ihre Freundesliste auf
Marcell99
Eroberer


Dabei seit: 14.11.2015
Beiträge: 53

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

weiß das niemand ??
21.11.2015 20:22 Marcell99 ist offline E-Mail an Marcell99 senden Beiträge von Marcell99 suchen Nehmen Sie Marcell99 in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe eine Alternativhypothese: die Leute hier - in diesem Falle ich - haben noch andere Dinge zu tun.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
#include <iostream>

using namespace std;

int main(int argc, const char * argv[]) {
	int k = 1; //k wird jetzt nicht mehr in der Schleife initialisiert, sondern davor
	double sum = 0; //auch die Summe ist aus der Schleife herausgezogen worden
	for (int i = 1; i <= 30; i++)
	{
		for (; k <= 2<<i; k++)
		{
			sum += 1.0/k;
		}
		cout << "n = 2^" << i << ": " << sum << endl;
	}
	return 0;
}


__________________
Syntax Highlighting fürs Board (Link)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von eulerscheZahl: 21.11.2015 20:40.

21.11.2015 20:40 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Marcell99
Eroberer


Dabei seit: 14.11.2015
Beiträge: 53

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

tut mir leid wollte nicht nerven trotzdem danke
21.11.2015 20:47 Marcell99 ist offline E-Mail an Marcell99 senden Beiträge von Marcell99 suchen Nehmen Sie Marcell99 in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Keine Sorge, ich helfe gerne, wenn ich kann.
Aber quengeln hilft nichts, entweder antworte ich, oder eben nicht.

__________________
Syntax Highlighting fürs Board (Link)
21.11.2015 21:00 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Marcell99
Eroberer


Dabei seit: 14.11.2015
Beiträge: 53

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Daumen hoch alles klar
21.11.2015 21:27 Marcell99 ist offline E-Mail an Marcell99 senden Beiträge von Marcell99 suchen Nehmen Sie Marcell99 in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » harmonische Reihe c++