Моделирование распределения - C#
Формулировка задачи:
Добрый день! необходимо смоделировать биномиальное распределение, но получающиеся выборки почему-то не проходят по критерию согласия. Половина выборок вообще состоят из 2 цифр, а не из всех 4 возможных. Не можете подсказать, в чём проблема?
private static readonly Random Random = new Random();
public static double GetRandomNumber(double minimum, double maximum)
{
return Random.NextDouble() * (maximum - minimum) + minimum;
}
static int Binomial (int n, double p)
{
int s=0;
for (int i=0;i< n; i++)
{
double a = GetRandomNumber(0, 1);
Console.WriteLine(a);
if (a< p)
{
s++;
}
}
return s;
}
static void Main(string[] args)
{
int[] zeichneBinom=new int[100];
int count=0;
while (count < 100)
{
zeichneBinom[count] = Binomial(3, 0.427);
count++;
}
System.IO.StreamWriter textFile = new System.IO.StreamWriter(@"D:binom.txt");
foreach (int t in zeichneBinom)
{
textFile.WriteLine(zeichneBinom[t]);
}
textFile.Close();
Console.WriteLine("Выборка сформированна!");
Console.WriteLine(Bernulli(0.5));
Console.WriteLine(Bernulli(0.5));
Console.ReadKey();Решение задачи: «Моделирование распределения»
textual
Листинг программы
public static double GetRandomNumber(double minimum, double maximum)
{
var random = 10000* Random.NextDouble();
return (random - Math.Floor(random )) * (maximum - minimum) + minimum;
}