# MonteCarlo Methode



## SummerYam92 (3. Jan 2013)

Hi, 

also ich soll über die Ferien die Monte Carlo Methode in Java darrstellen.
Leider habe ich gar keine Ahnung von Java, daher frage ich hier mal nach.

Das ist das Grundgerüst was wir benutzen sollen:


```
import java.awt.Graphics;
import javax.swing.*;
import java.awt.Color;
import java.awt.Font;
class DrawPanel extends JPanel
{
	protected void paintComponent( Graphics g )
	{
		super.paintComponent( g );
		ZubehoerMonteCarlo.durchfuehrungDesVersuchs(g);
	}
}
class ZubehoerMonteCarlo
{
	//Anzahl der Pixel entspricht demRadius des Kreises / der halben Seitenlänge des Quadrats
	public static int anzahlPixel = 1001; //von 0 bis 1000
	
	//Anzahl der Punkte, die in der Simulation erzeugt, gezeichnet und ausgewertet werden
	public static int anzahlPunkte = 10000;

	public static void MonteCarlo (int anzPixel)
	//Bietet die Möglichkeit, die Eigenschaft anzahlPixel zu ändern.
	//Besonderheit:  ..... (bitte ausfüllen!!!!!)
	{
		...
	}
	public static int wuerfeln()
	//Würfelt eine Zufallszahl im passenden Bereich
	{
		...
	}
	public static void zeichneKreis(Graphics g)
	//Zeichnet einen blauen, nicht ausgefüllten Kreis 
	//mit maximal möglichem Radius und Mittelpunkt im 
	//Zentrum des Quadrats
	{
		...
	}
	public static void zeichneRechteck(Graphics g)
	//Zeichnet ein schwarzes, nicht ausgefülltes Quadrat 
	//mit Seitenlänge anzahlPixel
	{
		...
	}
	public static boolean istImKreis(int x, int y)
	//Prüft, ob eine Position sich innerhalb des Kreises befindet.
	//Hierbei wird "auf der Kreislinie" ebenfalls als im Kreis gedeutet.
	//Ist die Position im Kreis, wird true zurückgegeben, sonst false.
	{
		...
	}
	public static void zeichnePunkt(int x, int y, Graphics g)
	//Zeichnet ein grünen bzw. einen roten Punkt (ausgefüllter Kreis, Durchmesser 5px) 
	//an der Position (x , y) (Mittelpunkt des Punktes!)
	//Punkte innerhalb des Kreises sollen grün gezeichnet werden,
	//Punkte außerhalb des Kreises sollen rot gezeichnet werden.
	{
		...
	}
	public static int[] generierePunkt()
	//Generiert eine x- und eine y-Koordinate und erstellt
	//hieraus einen Punkt, der in Form eines int-Arrays 
	//zurückgegeben wird.
	//Der Punkt wird in dieser Funktion noch nicht gezeichnet!!
	{
		...
	}
	public static void durchfuehrungDesVersuchs(Graphics g)
	//Führt die MonteCarlo-Simulation durch, indem der Kreis, das Rechteck
	//und die generierten Punkte gezeichnet werden.
	//Zudem wird festgehalten, wie viele der Punkte im Kreis lagen.
	//Hieraus wird PI berechnet.
	//Die Ergebnisse werden als Text in die Grafik geschrieben (Farbe gelb).
	{
		...
	}
}
public class MonteCarlo
{
	public static void main( String[] args )
	{
		JFrame f = new JFrame();
		f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		f.setSize( ZubehoerMonteCarlo.anzahlPixel+100, ZubehoerMonteCarlo.anzahlPixel+100 );
		f.getContentPane().add( new DrawPanel() );
		f.setVisible( true );
	}
}
```




Meine Frage wäre jetzt, wie lerne ich am schnellsten, wie ich die Aufgabe löse?
Ich habe kein Interesse Java an sich zulernen, da ich es nur für diese Aufgabe brauche und sonst vermutlich nie wieder.

Falls jmd die Aufgabe einfach so lösen möchte habe ich auch nichts dagegen  , mir würde es aber auch reichen wenn ihr mir links zu tutorials gibt, die genau das ansprechen, was ich hier benötige.


----------



## Timothy Truckle (3. Jan 2013)

SummerYam92 hat gesagt.:


> Meine Frage wäre jetzt, wie lerne ich am schnellsten, wie ich die Aufgabe löse?


Such Dir einen Mitschüler und mach dass mit dem zusammen.



SummerYam92 hat gesagt.:


> Ich habe kein Interesse Java an sich zulernen,


Wenigstens Einer, der mal ehrlich ist. Leider scheint die Aussage auch auf Deinen Lehrer zuzutreffen, wenn ich mir die Aufgabe so anschaue... (



SummerYam92 hat gesagt.:


> Falls jmd die Aufgabe einfach so lösen möchte habe ich auch nichts dagegen  , mir würde es aber auch reichen wenn ihr mir links zu tutorials gibt, die genau das ansprechen, was ich hier benötige.


Trail: Learning the Java Language (The Java™ Tutorials)
Trail: Creating a GUI With JFC/Swing (The Java™ Tutorials)

bye
TT


----------



## SummerYam92 (3. Jan 2013)

erstmal Danke für deine schnelle Antwort.
Die Links die du gepostet hast, sind sehr allgemein und schwer verständlich, wenn man gar keine Ahnung von Java hat. Gibt es da nicht etwas einfacheres oder spezifischeres? Ich wollte damit eigentlich nicht meine ganzen Ferien befassen =/ .


----------



## timbeau (3. Jan 2013)

Mal ehrlich, was ist dir die Aufgabe wert? Das SIND Grundlagen, mehr oder weniger


----------



## SummerYam92 (3. Jan 2013)

Mir ist die Aufgabe viel wert, nur habe ich "besseres" zutun, als jetzt Java zu lernen kurz vorm Abi. Zumal Java nicht mal im Abi drankommt. Ich will einfach nur mit dem geringsten Aufwand die Aufgabe lösen


----------



## ARadauer (3. Jan 2013)

Die Frage von timbeau ging eher in die Richtung, wie viel zu zahlen möchtest, damit sie dir jemand schreibt.



> Ich habe kein Interesse Java an sich zulernen, da ich es nur für diese Aufgabe brauche und sonst vermutlich nie wieder.


auf jedenfall mal jemand der ehrlich ist!


----------



## SummerYam92 (3. Jan 2013)

Naja, wenn sie mir jmd komplett richtig macht ca 20 euro, denke das sollte genug sein, weil wenn es nur Grundlagen sind, braucht man ja nicht länger als 20min


----------



## JCODA (3. Jan 2013)

http://www.java-forum.org/jobboerse/143762-biete-hilfe-ubungsblaettern-kleineren-programmen.html

Kannst dich anmelden und mir ne pn schreiben.


----------



## timbeau (3. Jan 2013)

Man kann ein Riesenprogramm nur mit "Grundlagen" schreiben. Die Verwendung der Technik sagt 0 über die Dauer eines Projekts aus. Nur die Leute die es beherrschen hängt von den benötigten Techniken ab. 

Da ich persönlich in diesem Forum schonmal nicht bezahlt wurde bin ich zwar raus aber 20€ ist kein soo schlechter Preis. Evtl findet sich jmd.


----------

