Cuando cambio isWinDefault con isWinConfidence obtengo resultados drásticamente diferentes. Sentí que deberían ser lo mismo. ¿Hay un error en mi código o una propiedad de las estadísticas que he entendido mal?Código de probabilidad Problema
Esta prueba simula lanzar una sola moneda 1x frente a una moneda muchas veces.
La pregunta es
Si P (x) es 70%, entonces deben p (x) * 100 ser> = 70 70% del tiempo, no?
Gracias.
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;
}
}
Nunca definió qué 'r' (como en' r.NextDouble() ') está en cualquier parte de su pregunta. – devuxer
@DanM Es simplemente aleatorio C# Aleatorio r = nuevo Aleatorio(); –
+1 para la pregunta, esto es en realidad un poco más interesante de lo que parece (bueno, para mí es :-)), y no hay errores en tu código hasta donde yo sé. –