Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Übungsblatt 4 - Fibonacci-Verallgemeinerung Reloaded
Wieviel zeit benötigt den die memberDP, wenn die DP richtig funktioniert?
für die Berechnung n == 50:
aktuell kriege ich folgende werte mit einem timestamp generiert mit: System.currentTimeMillis();
- Aufruf von initDP: 0 ms
- Aufruf von initDP: 0 ms
kommt das wirklich hin mit 0 ms? (memberRec benötigt ca. 5610 ms?)
greets
Mirko
DP:
0: 0.0
1: 1.0
2: 2.0
3: -1.0
4: -0.5
5: 2.25
6: 2.375
7: -1.6875
8: -0.28125
9: 2.515625
10: 2.0859375
11: -1.32421875
12: 0.529296875
13: 1.8212890625
14: 1.40771484375
15: -0.174560546875
16: 1.5594482421875
17: 0.62799072265625
18: 0.767425537109375
19: 1.1757354736328125
20: 2.3915939331054688
21: -0.4283714294433594
22: 0.5331783294677734
23: 2.125004768371582
24: 2.7591357231140137
25: -0.8463895320892334
26: 0.8554204702377319
27: 2.3314254879951477
28: 2.650748699903488
29: -0.46995387971401215
30: 1.6264946684241295
31: 1.8375013656914234
32: 2.286298168823123
33: 0.483345584012568
34: 2.5625197417102754
35: 1.0050382979679853
36: 1.990903030964546
37: 1.5670682262280025
38: 3.355640637309989
39: 0.3130827123095514
40: 2.0366922946923296
41: 2.337294489963824
42: 3.8190244472552877
43: 0.12718007106468576
44: 2.528064596560853
45: 2.5549921489748613
46: 3.9596682945269777
47: 0.548230449297364
48: 3.3773378229209072
49: 2.270999383066524
Zeit benötigt: 0 msec
0: 0.0
1: 1.0
2: 2.0
3: 3.0
4: 4.5
5: 12.25
6: 20.375
7: 53.9375
8: 85.40625
9: 225.765625
10: 359.0234375
11: 951.49609375
12: 1512.650390625
13: 4007.3916015625
14: 6370.11083984375
15: 16876.773193359375
16: 26827.810180664062
17: 71076.91705322266
18: 112985.48641967773
19: 299340.4892425537
20: 475838.5440444946
21: 1260673.2771644592
22: 2003995.4021663666
23: 5309328.99465847
24: 8439832.0360322
25: 2.236025336724496E7
26: 3.5544375453033805E7
27: 9.417026762724298E7
28: 1.4969523347689667E8
29: 3.965983370594866E8
30: 6.304418810422637E8
31: 1.6702749702329025E9
32: 2.6551076888262506E9
33: 7.034367559125113E9
34: 1.118199321972993E10
35: 2.962525801955773E10
36: 4.709299471816284E10
37: 1.2476685435453221E11
38: 1.9833227475152823E11
39: 5.254559448983783E11
40: 8.352769120657302E11
41: 2.212959134518858E12
42: 3.5177709765298154E12
43: 9.319883386222918E12
44: 1.4815101991400107E13
45: 3.9250714113019125E13
46: 6.23938421460585E13
47: 1.6530448875136916E14
48: 2.6277183511845384E14
49: 6.961803019091538E14
Zeit benötigt: 0 msec
Es wäre von Vorteil, wenn du deine Voraussetzungen genauer nennst.
Was sind denn bei dir die Variablen a,b,c?
Außerdem berechnet der Aufruf initDP(…) nichts.
Vom Prinzip her sollte die Methode memberDP(…) durchaus schneller als memberRec(…) sein. Das ist ja gerade die Idee der dynamischen Programmierung.
Für die Belegung
c = 3
a = 1.5
b = -0.5
erhalte ich für memberRec(50) 2189 MS und für memberDP(50) 0 MS.
Servus Gaku,
das ist mit den Standardfällen gemessen die in der Main stehen, alles andere machte für mich jetzt keinen SInn hier zu posten.
Das die InitDP nichts berechnet ist wohl auch klar.
Gemessen habe ich in der memberRec und memberDP.
Ich wollte eigentlich nur eine Bestätigung, das meine Zeitwerte ungefähr hinkommen.
Also bei mir:
- memberRec(50): 1156 ms
- memberDP(50): 2 ms
Ich habe eine Frage zur Teilaufgabe c) und zwar sind mem1, mem2, mem3 aka Fibonacci(n-1), Fibonacci(n-2), Fibonacci(n-3)?
jein, wie der Name schon sagt, snd es Speicherplätze, Fibu(n-1(bis3) würde eine neu berechnung durchführung, was aber nicht gewollt ist.