randomRange

Вызывает функцию и передает ей номер выбранной вероятности. @note Сумма вероятностей должна быть равна единице! @param range массив вероятностей @param funcs перечисление делегатов

  1. void randomRange(double[] range, T funcs)
  2. void randomRange(double[] range)
    void
    randomRange
    ()
    (
    double[] range
    )
    if (
    __traits(compiles, "T(0);")
    )
    in { double summ = 0; foreach (val; range) { summ += val; } assert (abs(summ - 1) <= 0.001, text("Сумма вероятностей должна быть равна 1! А не ", summ)); }

Examples

Статистический тест randomRange

1 int count = 500000;
2 double a = 0;
3 double b = 0;
4 
5 foreach(i; 1..count)
6 {
7 	randomRange([0.5, 0.5],
8 		{
9 			a++;
10 		},
11 		{
12 			b++;
13 		}
14 	); 
15 }
16 a = a/count;
17 b = b/count;
18 assert(abs(a-0.5) <= 0.01, text("randomRange не прошла статистический тест da = ", abs(a-0.5)));
19 assert(abs(b-0.5) <= 0.01, text("randomRange не прошла статистический тест db = ", abs(b-0.5)));

Meta