bejoy
@bejoy

Как описать алгоритм распределения?

По правде, затрудняюсь описать что необходимо.
Лучше покажу на примере:

Дан ряд целых чисел, допустим 0..22 ( достаточно для примера).
Необходимо получить для каждого элемента ряда X
значение Y, которое >>примерно<< соответствовало бы
приведенным ниже значениям. При этом "центром распределения"
является значение Z, которое в примере = 10

X  =>  Y
00 => 20
01 => 15
02 => 13
03 => 12
04 => 10
05 => 8
06 => 6
07 => 2
08 => 0
09 => 0
10 => 0 ( "центр" Z )
11 => 0
12 => 0
13 => -1
14 => -2
15 => -3
16 => -4
17 => -5
18 => -6
19 => -7
20 => -8
21 => -9
22 => -10


Как видно, распределение в разные стороны
от Z не является равномерным - это важно.
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
bejoy
@bejoy Автор вопроса
Все, решил. Возможно, если кому-то понадобится нечто подобное, а также дабы не оставлять вопрос без ответа, несколько упрощая, это будет выглядеть так:
// * Центр распределения
$norm = 20;
// * Мягкость распределения
$soft = 4;
// * Считаем и возвращаем результат
return -log( ( ( $x + 1 ) * 1 / ( $norm + 1 ) ),  1.01 + ( 0.02 * $soft ) );

// * Результат такой:

x[0] = 39
x[1] = 30
x[2] = 25
x[3] = 21
x[4] = 18
x[5] = 16
x[6] = 14
x[7] = 12
x[8] = 11
x[9] = 9
x[10] = 8
x[11] = 7
x[12] = 6
x[13] = 5
x[14] = 4
x[15] = 3
x[16] = 2
x[17] = 2
x[18] = 1
x[19] = 0
x[20] = 0
x[21] = 0
x[22] = -1
x[23] = -1
x[24] = -2
x[25] = -2
x[26] = -3
x[27] = -3
x[28] = -4
x[29] = -4
x[30] = -5
x[31] = -5
x[32] = -5
x[33] = -6
x[34] = -6
x[35] = -7
x[36] = -7
x[37] = -7
x[38] = -8
x[39] = -8
x[40] = -8
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы