Cześć, nie mogę się uporać z pewnym problemem, nie do końca też wiedziałem jak poprawnie zatytułować wątek.
Chodzi o to że chciałbym tablicę o zadanej długości wypełnić 0 lub 1 używając generatora liczb losowych, w taki sposób, aby prawdopodobieństwo tego że wypadnie jedynka było większe bliżej środka tablicy.
Próbowałem jakimiś wzorami Gaussa to robić, ale nie bardzo mi wychodzi. Tzn szybko próg prawdopodobieństwa zostaje przekroczony i wychodzi mniej więcej coś takiego: [0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0]
Wstawię fragment kodu w języku C# może ktoś coś podpowie co do poprawki, albo poda jakiś działający wzór
int start = (mw / 2) - (sourceSize / 2);//mw to długość tablicy, sourceSize to obszar tablicy od środka który chcę wypełniać
int end = (mw / 2) + (sourceSize / 2);
double z = ((end - start) / 2.0);
double k = 0;
for (int x = start; x < end; x++) {
double r = rand.NextDouble();//losowa liczba od 0 do 1
double l = z - Math.Abs(z - k);
double sigma = (sourceSize / (z*1.5));//przy tym współczynniku ustawionym na 1.5 jest najlepiej chociaż i tak, źle
double m = 2 * (sigma * sigma);
double h = Math.Exp((-l) / m);
map[x].Stuff = (h <= r) ? 1 : 0;
k++;
}