C# :: Aufgabe #201 :: Lösung #2
4 Lösungen

#201
kleine simulation zweier zufallsereignisse
Anfänger - C#
von hollst
- 21.03.2018 um 21:25 Uhr
Gegeben seien zwei unabhängige Zufallsereignisse A und B, wobei A mit einer
Wahrscheinlichkeit von 70 % eintritt und B mit eine Wahrescheinlichkeit von 10 %.
Durch (MontoCarlo-) Simulation schätze man ab, mit welchen Wahrscheinlichkeiten das Doppelereignis (A, B)
vorkommt für die Fälle
a) weder A noch B sind eingetreten,
b) entweder A oder B (oder beide) ist (sind) eingetreten.
Man kann das natürlich auch ausrechnen, aber grau ist bekanntlich alle Theorie.
Wahrscheinlichkeit von 70 % eintritt und B mit eine Wahrescheinlichkeit von 10 %.
Durch (MontoCarlo-) Simulation schätze man ab, mit welchen Wahrscheinlichkeiten das Doppelereignis (A, B)
vorkommt für die Fälle
a) weder A noch B sind eingetreten,
b) entweder A oder B (oder beide) ist (sind) eingetreten.
Man kann das natürlich auch ausrechnen, aber grau ist bekanntlich alle Theorie.
#2

von enn (50 Punkte)
- 10.04.2018 um 11:06 Uhr

class MonteCarloSimulation { private int AnzahlEreignisA = 0; private int AnzahlEreignisB = 0; private int AnzahlEreignisNichtAOderB = 0; private int GesamtDurchlaeufe = 0; private Random random; public MonteCarloSimulation() { random = new Random(DateTime.Now.Millisecond); } public void start(int AnzahlDurchlaeufe) { this.GesamtDurchlaeufe = AnzahlDurchlaeufe; for (int i=0;i<=AnzahlDurchlaeufe;i++) { int result = random.Next(100); WerteResultAus(result); } } public String getAusgabeString() { string AusgabeString = "Ergebnis der monte-Carlo Simulation\n"; AusgabeString += "Ergeinis A : " + getProzentNachSimulation(AnzahlEreignisA).ToString()+"%\n"; AusgabeString += "Ergeinis B : " + getProzentNachSimulation(AnzahlEreignisB).ToString() + "%\n"; AusgabeString += "Ergeinis weder A noch B : " + getProzentNachSimulation(AnzahlEreignisNichtAOderB).ToString() + "%\n"; return AusgabeString; } private void WerteResultAus(int result) { if (result < 70) { AnzahlEreignisA++; return; } if(result<80) { AnzahlEreignisB++; return; } AnzahlEreignisNichtAOderB++; } private float getProzentNachSimulation(int Wert) { return 100 * Wert / GesamtDurchlaeufe; } }

class Program { static void Main(string[] args) { MonteCarloSimulation dieSimulation=new MonteCarloSimulation(); dieSimulation.start(1000000); Console.WriteLine(dieSimulation.getAusgabeString()); Console.ReadLine(); } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1