![]() |
Ergänzung zur Approximation von Pi
Liste der Anhänge anzeigen (Anzahl: 3)
In
![]()
Pi berechnen nach Archimedes
Delphi-Quellcode:
function PiArchimedes(Schritte:integer):extended;
var anzahl,i : integer; s,x,y : extended; begin anzahl := 2; s := sqrt(2); for i := 1 to schritte do begin anzahl := anzahl * 2; x := sqrt(1-(1/2*s)*(1/2*s)); y := 1-x; s := sqrt((1/2*s)*(1/2*s)+y*y); end; result := s * anzahl; end; Pi berechnen nach Leibnitz' unendlicher Reihe
Delphi-Quellcode:
function PiUnendlicheReihe(Summandenzahl : integer):extended;
var i, summand : integer; begin summand := 1; result := 0; for i:=1 to summandenzahl do begin result := result + (1/summand); if (1-summand) < 1 then summand := -1 * (summand+2) else summand := -1 * (summand-2); end; result := result * 4; end; Pi berechnen nach dem MonteCarlo-Verfahren
Delphi-Quellcode:
function PiMonteCarlo(Tropfen: LongWord):extended;
var i : LongWord; x,y : extended; begin Randomize; Result := 0.0; for i := Tropfen-1 downto 0 do begin x := random; y := random; if ((x*x+y*y) < 1) then Result := Result + 1; end; Result := (4*Result) / Tropfen; end; Edi11: thx@Binärbaum für die Optimierung der Monte-Carlo-Funktion Edit2: thx@Binärbaum für weitere Optimierung von Monte-Carlo Edit3: Hab das Archimedes-Beispiel gezippt, wird leider nur unwesentlich kleiner :sad: Sorry an die Leute mit Modem/ISDN! [edit=flomei] Anmerkung zu den obigen Kommentaren: Binärbaum hatte kleinere Fehler gefunden, bzw. Optimierungen an der Geschwindigkeit vorgenommen. Dafür nochmal ein Dankeschön! Anhänge hinsichtlich ihrer Größe "optimiert", verschoben. Mfg, flomei[/edit] [edit=Matze]Code formatiert. Mfg, Matze[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz