Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hilfe: Monte Carlo Methode in Delphi bei Anfänger (https://www.delphipraxis.net/198849-hilfe-monte-carlo-methode-delphi-bei-anfaenger.html)

Scra 4. Dez 2018 21:33

Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
Hallo liebes Forum,
also sorry erstmal falls der Beitrag hier völlig falsch ist aber ich bin neu hier:stupid:

Und zwar hätte ich da eine Frage zu einer Aufgabe die ich für Info Klasse 11 Gymnasium Sachsen machen soll :D
Wir haben bis jetzt behandelt:
-Was sind algorithmen,programme etc (sehr allgemeines wissen)
-Alternativen
-Schleifen
-Schleifen mit Bedingungen

Jetzt habe ich eine Aufgabe bekommen die mir echt den Kopf rauchen lässt:

Pi nach der Monte-Carlo-Methode

Berechnen sie Pi nachfolgendem Verfahren:

Man wählt in dem durch die Eckpunkte (0|0),(1|0),(1|1),(0|1) festgelegten Einheitsquadrat N (z.B. N=10000) Zufallspunkte, indem man deren Koordinaten per Zufallsgenerator erzeugen läßt. Außerdem
ermittelt man die Anzhal K derjenigen Ounkte, die dabei in den Einheitskreis um (0|0) fallen. Da ein Viertel des Einheitskreises im genannten Quadrat liegt, ist K/N ein Näherungswert für Pi/4.


Muss ich dafür nicht erst einmal wissen wie man überhaupt so ein Koordinatensystem mit Kreis in Delphi erstellt?
Und Zufallsgenerator hatten wir auch noch nicht dran. xD

Bin ich jetzt zu doof und es ist eigentlich viel einfacher als es aussieht? :wall:

Weil die Aufgabe steht eigentlich auch ziemlich am Anfang (Kapitel 4: Algorithmen und Wiederholungen) im Lehrbuch...

Ich wäre sehr dankbar wenn mir jemand ein bisschen Hilfe oder wenigstens einen Denkanstoß geben könnte:-D

Mfg
Scra

(Btw ich benutze Delphi 6)

Schokohase 4. Dez 2018 21:49

AW: Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
Hast du dich schon mal über das Monte-Carlo-Verfahren informiert?

Glaube ich nicht, denn dann würdest du nicht fragen wie man ein Koordinatensystem mit Kreis erstellt.

Du musst also erst einmal verstanden haben, was das Monte-Carlo-Verfahren ist. Dann kannst du dich an die Umsetzung in Delphi machen.

DieDolly 4. Dez 2018 21:53

AW: Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
Ist diese Aufgabe für einen Anfänger nicht etwas übertrieben? Kapitel 4 des Lehrbuchs... hätte das eher nach mindestens einem Jahr Grundwissenaneignung erwartet.

mensch72 4. Dez 2018 22:04

AW: Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
Zu meinem Glück liegen solche "Schulaufgaben" bei mir nun mit 4x Jahren schon "einige" Zeit zurück.

Ohne zu wissen ob es "MonteCarlo" damals schon gab, aber wenn mir das "trotz Aufgabe" damals nix gesagt hätte(und heute aus Erfahrung dafür schlicht sinnlos erscheint), dann gehe ich damals wie noch heute schlicht praktisch & problemorientiert vor!
-> bzgl. dem PI Problem also schlicht durch einfache Umfang-Näherung via Außen&Innen-N-ECKen... (= pure Fleißarbeit diese einfache Mathematik in eine (Delphi)Schleife zu bringen)
-> klar ist das "igit Oldscool", aber es erfüllt bei heutiger Rechenleistung deterministisch seinen Zweck für beherschbare Dinge wie "PI" besser&schneller wie sagen wir statistische oder (Zufalls)Algos ala "MonteCarlo"... Nottfalls muss der IT Lehrer eventuell mal kurz sein Mathewissen aufrischen, aber dann wird er bestätigen und erkennen das diese "PI Aufgabe" so auch anders, einfacher und praktisch so wohl sogar besser gelöst werden kann.


=> Praktisch gilt in Informatik & Medizin ja sehr oft der Grundsatz, alles was funktioniert&hilft ist gut... und wer es kann/macht hat Recht;)

gammatester 4. Dez 2018 22:06

AW: Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
Zitat:

Zitat von Scra (Beitrag 1420116)
Muss ich dafür nicht erst einmal wissen wie man überhaupt so ein Koordinatensystem mit Kreis in Delphi erstellt?
Und Zufallsgenerator hatten wir auch noch nicht dran. xD

Nein, Du mußt nicht wissen, wie man einen Kreis erstellt! Du mußt nur wissen, was ein Kreis (besser Kreisscheibe) ist, nämlich die Menge aller Punkte, die einen Abstand (den Radius) vom Mittelpunkt nicht überschreiten. Den Abstand berechnest Du mit Pythagoras als sqrt(x*x + y*y).

Die Zufallszahlen x,y erzeugst Du mit dem in Delphi eingebauten Zufallsgenerator random .

Sherlock 5. Dez 2018 07:48

AW: Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
Zitat:

Zitat von mensch72 (Beitrag 1420120)
Zu meinem Glück liegen solche "Schulaufgaben" bei mir nun mit 4x Jahren schon "einige" Zeit zurück.
...
=> Praktisch gilt in Informatik & Medizin ja sehr oft der Grundsatz, alles was funktioniert&hilft ist gut... und wer es kann/macht hat Recht;)

Nein!
Wenn in der Schule eine Aufgabe gestellt wird, und auch der zu nehmende Lösungsweg genannt wird, führt jede Abweichung davon zu einem "Thema verfehlt". Es geht schließlich darum zu zeigen, daß man "dieses spezifische Problem" verstanden hat und nicht um irgendwas anderes. Ich würde zB auch keine Punkte vergeben, wenn die Aufgabe lautet "ermittle die ersten 30 Primzahlen mit dem Sieb des Erathostenes" und es kommt einer daher und findet die Primzahlen per Probedivision. Das hat mit Kreativität, Recht haben oder um die Ecke denken nichts zu tun, der Schüler hat schlicht nicht begriffen worum es geht. Also bekommt er eine entsprechend miese Note. Sowas also einem Schüler zu empfehlen halte ich für... nicht gut.

Sherlock

KodeZwerg 5. Dez 2018 08:14

AW: Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
Nunja, wir könnten auch eine Hausaufgaben-Sparte eröffnen oder dem TE als Hausaufgabe die Erforschung der DP-Suche aufgeben.

Hier ist eine mögliche Lösung.

Schokohase 5. Dez 2018 08:16

AW: Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
Hier mal ein Pseudo-Programm, damit auch ein jeder versteht, dass das einen Anfänger mit dem vom TE genannten Vorwissen nicht überfordert.
Code:
werteGesamt = 0
werteImKreis = 0

solange werteGesamt < 1000
  x = Zufallswert(0..1)
  y = Zufallswert(0..1)
  Erhöhe( werteGesamt )
  wenn ImKreis( x, y )
    Erhöhe( werteImKreis )
monteCarloPi = 4 * werteImKreis / werteGesamt
Die
Delphi-Quellcode:
ImKreis
Funktion sollte sich mit allgemeinem mathematischen Schulwissen erstellen lassen (muss ja auch gar keine echte Delphi-Funktion sein).
Wie man an Zufallswerte in Delphi kommt sollte sich ganz leicht mit einer 5 Minuten Recherche im Internet finden lassen.

TigerLilly 5. Dez 2018 08:53

AW: Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
Als Ergänzung:
http://www.zum.de/Faecher/Inf/RP/Java/java_1.htm

jsp 5. Dez 2018 09:03

AW: Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
:-D
https://www.mirko-hans.de/mathe/date...umentation.pdf

p80286 5. Dez 2018 11:17

AW: Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
Zitat:

Zitat von Schokohase (Beitrag 1420129)
Wie man an Zufallswerte in Delphi kommt sollte sich ganz leicht mit einer 5 Minuten Recherche im Internet finden lassen.

Warum soll man ihm nicht sagen, daß die Werte über
Delphi-Quellcode:
randomize;
for i:=0 to 999 do
begin
  randomwert:=random(Obergrenze);
  .....
end;
zu erhalten sind?

Gruß
K-H

gammatester 5. Dez 2018 11:45

AW: Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
Zitat:

Zitat von p80286 (Beitrag 1420140)
Warum soll man ihm nicht sagen, daß die Werte über
Delphi-Quellcode:
  ...
  randomwert:=random(Obergrenze);
  .....
end;
zu erhalten sind?

Weil das hier in die Irre führt, da ja Werte zwischen 0..1 benutzt werden - und random(1) natürlich nicht funktioniert. Daß dafür
Delphi-Quellcode:
random
benutzt, wird habe ich schon gestern geschrieben.

Scra 5. Dez 2018 21:00

AW: Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
Krass, das Forum ist ja mega Aktiv :thumb::-D

Vielen Dank für die zahlreichen Antworten ich setz mich spätestens Freitag Abend mal ran, schreib übermorgen erstmal Astro-Klausur:)

Mit freundlichen Grüßen
Scra

Sherlock 6. Dez 2018 06:59

AW: Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
Zitat:

Zitat von Scra (Beitrag 1420200)
schreib übermorgen erstmal Astro-Klausur:)

:shock:

Was fürn Ding? Astrologie, -nomie oder gar -physik? Ich dachte es geht hier um Schulaufgaben. Was für eine genial abgedrehte Schule ist das denn?

Sherlock

Rollo62 7. Dez 2018 06:51

AW: Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
Zitat:

Krass, das Forum ist ja mega Aktiv
Weil hier nur Jedi-Ritter sitzen :lol:

p80286 7. Dez 2018 07:21

AW: Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
Zitat:

Zitat von Sherlock (Beitrag 1420206)
Zitat:

Zitat von Scra (Beitrag 1420200)
schreib übermorgen erstmal Astro-Klausur:)

:shock:

Was fürn Ding? Astrologie, -nomie oder gar -physik? Ich dachte es geht hier um Schulaufgaben. Was für eine genial abgedrehte Schule ist das denn?

Sherlock

"Die voluminöse Expansion subterraner Knollengewächse ist reziprok zur intellektuellen Kapazität des Agrarökonomen."

gruß
K-H

Scra 15. Dez 2018 21:23

AW: Hilfe: Monte Carlo Methode in Delphi bei Anfänger
 
Sooo sorry dass ich mich so lange nicht gemeldet habe.
Viel Schulstress :D

Also ich sollte ja einen kurzen Vortrag halten um meine eine Note bisschen aufzubessern.
Ich bedanke mich für die Hilfe, hab 14 Punkte bekommen. :thumb:

Für die Leute die auch auf der Suche sind, bin ich jetzt mal so nett und teil das Ganze.

-Handout:
https://imgur.com/a/IKrbfwP

-Code:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var ges,kr,n: integer; p,x,y: real;

begin

n:=strtoint(Edit1.text);
ges:=0;
kr:=0;
 
 repeat
  x:=Random;
  y:=Random;
  if sqrt(x*x+y*y)<=1
   then
    begin
     kr:=kr+1;
     ges:=ges+1;
    end
   else
    ges:=ges+1
 until ges=n;

 p:=4*kr/ges;
 Edit2.Text:=floattostr(p);

end;
-Was Falsch war:
Man hätte es auch mit normaler zählschleife (also for i=... to n do ...) machen können, weil ja die Anzahl der Wiederholungen bekannt ist.

MfG
Scrap :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz