Thema: gewichteter Graph |
|
Meine Frage:
ba bb ba a bb a
0110 0111 0110 00 0111 00
Entwerfen Sie einen geeigneten gewichteten Graphen und formulieren Sie die Aufgabe als kürzeste-Wege-Problem. Finden Sie dann eine Codierung mit minimaler Gesamtlänge.
Meine Ideen:
ich weiß was das alles bedeutet aber ich weiß jetzt nicht wie man mit ba bb a bb a eine Graph zeichnen soll
in der aufgabe steht nämlich auch die länge der Codes
die länge würde ja bedeutet von einem Punkt zum anderen Punkt aber genau weiß ich das auch nicht
|
|
Thema: CSR-FORMAT matrix C++ |
|
Meine Frage:
Die Aufgaben habe ich hochgeladen
kann jemand vielleicht drüber schauen ob es alles so richtig ist ???
bei g wüsste ich jetzt nicht genau was man da machen muss :/
das mit der Laufzeit verwirrt mich etwas
Meine Ideen:
b) for (i=0; i<N, i++)
for (j=row-offsets[i] ; j < row_offsets [i+1] ; j++)
y[i] += entries [i] *x[ column_indices [j] ];
c)using namespace std;
void MatVecMultCSR(int* row offsets, int* column indices, double* entries, double* x, double* y, int n, int m)
vektor<int> row_offsets = { 0, 3, 5, 8, 10, 12 };
vektor<int> entries = { 1, 2, 1, 1, 5, 1, 2, 2, 2, 3, 1, 4 };
vektor<int> sum(5);
for(double i = 0; i < row_offsets.()-1; i++) {
sum[i] = SUM(entries() + row_offsets0[i], entries() + row_offsets0[i + 1], 0);
d) for (n = 0; n < N; n = n ++)
y[i] = 0;
// [0, 0, 0, 0, 0]
i = 0;
n = 0;
y[0] = y[1] + entires[3]*s[Column_indices[1]];
y[0] = y[1] + entires[3]*s[1];
y[0] =1 + 3*1;
//[4, 0, 0, 0, 0]
i = 0;
n = 1;
y[0] = y[2] + entries[1]*s[Column_indices[4]];
y[0] = y[2] + entries[1]*s[4];
y[0] = 2 + 1*4;
//[4, 6, 0, 0, 0]
i = 0;
n = 2;
y[0] = y[1] + entires[2]*s[Column_indices[2]];
y[0] = y[1] + entires[2]*s[2];
y[0] = 1 + 2*2;
//[4, 6, 5, 0, 0]
.
.
.
i = 2;
n = Row_offsets[4] = 12;
y[2] = y[2] + entries[4]*s[Column_indices[12]];
y[2] = y[2] + entires[4]*s[1];
y[2] = 1 + 4*1;
// [4,6,5,5,5]
f) void Trigonal (double* A, double* x, double* y, int n, int m, int i, int j, int N)
int i;
y[0] = y[0/x[0];
n[0] = n[0]/x[0];
for(i = 1; i != N; i++){
j = 1.0/(x[i] - y[i - 1]*A[i]);
y[i] = y[i]*j;
n[i] = (n[i] - A[i]*n[i - 1])*j;
}
m[N - 1] = n[N - 1];
for(i = N - 2; i != -1; i--)
m[i] = n[i] - y[i]*m[i + 1];
|
|
Thema: harmonische Reihe c++ |
|
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;
}
|
|
Thema: harmonische Reihe c++ |
|
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 ?
|
|
Thema: harmonische Reihe c++ |
|
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;
}
|
|
Thema: Mergesort |
|
Meine Frage:
Der benötigte Speicherplatz S(n) für den Sortieralgorithmus Mergesort zum Sortieren
von n = 2^k, k ? N, Zahlen ist gegeben durch S(n) = n + n/2 + S( n/2) , S(1) = 1.
Zeigen Sie, dass gilt S(n)=3n-2
Meine Ideen:
ich weiß was der moergesort ist aber ich weiß nicht wie ich diese Aufgabe machen kann.
oder wie ich das zeigen kann ??
kann mir vielleicht jemand die Aufgabe erklären ??
|
|
Thema: Konvergenz des Bisektionsverfahrens |
|
hier ist diese harmonische reihe was ich vorhin auch erwähnt
kannst du vielleicht was damit anfangen
Wir betrachten die Partialsummen sn der harmonischen Reihe
s n = ( n) sigma ( k= 1) 1/k
k
k=1 und zeigen, dass es Konstanten 0 < c < C gibt mit
c(1 + log2(n)) < sn < C(1 + log2(n)). Gehen Sie dabei wie folgt vor:
a) Zeigen Sie zunächst, dass die Abschätzung für alle n = 2j mit j Elemente N0 gilt.
b) Folgern Sie mit Hilfe von a), dass die Abschätzung auch für alle 2^(j-1) < n < 2^j gilt.
|
|
Thema: Konvergenz des Bisektionsverfahrens |
|
Meine Frage:
gegeben sei eine stetige Funktion f : [a,b] Elemente R mit f(a)f(b) < 0, die eine eindeutige Nullstelle x* (a, b) besitzt.
Zeigen Sie, dass die k-te Iterierte x(k) des Bisektionsverfahrens der Abschätzung
|x^(k)-x*|< 1/ 2^k *(b-a)
Meine Ideen:
ich weiß was das ist und wie man das an einem Beispiel rechnen kann aber ich weiß nicht wie ich das allgemein beweisen kann
|
|
|