Wenn ich isWinDefault mit isWinConfidence ausschalte bekomme ich drastisch unterschiedliche Ergebnisse. Ich fühlte, dass sie gleich sein sollten. Gibt es einen Fehler in meinem Code oder eine Eigenschaft von Statistiken, die ich falsch verstanden habe?Probability Code Problem
Dieser Test soll das einfache Umdrehen einer einzelnen Münze 1x gegen eine Münze simulieren.
Die Frage ist
Wenn P (x) beträgt 70%, dann sollte p (x) * 100 sein> = 70 70% der Zeit, nicht wahr?
Danke.
private void TestWin()
{
double headsUp = 0;
double testRuns = 100;
for (double i = 0; i < testRuns; i++)
{
if (IsWinConfidence())
{
headsUp++;
}
}
label1.Text = "Probability of Heads is " + headsUp /testRuns;
}
private bool IsWinDefault()
{
if (r.NextDouble() <= .7)
{
return true;
}
return false;
}
private bool IsWinConfidence()
{
int headsCount = 0;
for (double x = 0; x < 100; x++)
{
if (IsWinDefault())
headsCount++;
}
double pHeadsCount = headsCount/100d;
if (pHeadsCount >= .7)
{
return true;
}
else
{
return false;
}
}
Sie haben nie definiert, was "r" (wie in 'r.NextDouble()') irgendwo in Ihrer Frage ist. – devuxer
@DanM Es ist nur C# zufällig Random r = new Random(); –
+1 für die Frage, das ist eigentlich ein bisschen interessanter, dass es aussieht (naja, für mich ist es :-)), und es gibt keinen Bug in Ihrem Code, soweit ich das beurteilen kann. –