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
