Integer
.
Bestimmen Sie experimentell den Anstieg der Rechenzeit bei Verdopplung der Stellenzahl, z.B.
:set +s x = 10^10^8 :: Integer odd x -- damit x ausgewertet wird odd ((x-1)*(x+1)) -- die eigentliche Messung True (3.73 secs, 166,159,792 bytes) y = x*x -- hat doppelte StellenzahlIst die Anzahl der Bytes plausibel?
Diskutieren Sie mögliche verkürzte Auswertungen für
odd ...
. Kann GMP/GHC das?
(x+1)^2
schneller als (x+1)*(x+1)
?
(und nichtnegativen Ziffern ∈{0,...,| B| - 1} wie bisher)
Bsp: B = - 2,
-3 = 1⋅B0 +0⋅B1 +1⋅B2 +1⋅B3 = 1 + 0 + 4 - 8
wie auf Folie Potenzreihe für Wurzelfunktion
Bestimmen Sie damit x = arctan(1/2), y = arctan(1/3) auf (z.B.) 20 Stellen.
Begründen Sie x + y = π/4. Rechnen Sie den Wert für π aus und vergleichen Sie mit einer verläßlichen Quelle.
Kann man π nach diesem Verfahren, aber mit anderen Parametern, besser bestimmen? (mehr Stellen bei gleichem Aufwand)
Bestimmen Sie damit a = log(6/5), b = log(9/8), c = log(10/9) auf (z.B.) 100 Stellen
und daraus log 2 als eine Linearkombination.
Geben Sie eine bessere Menge solcher Brüche zur Bestimmung von log 2 an.
(Definieren Sie solches und besser exakt. Mit anderen Worten, spezifizieren Sie die entsprechende Autotool-Aufgabe.)