Возмущать очень маленькие числовые значения (от 0,001 до 0,999)

У меня есть таблица с числовыми значениями, хранящимися как decimal(8,3) в MySQL. Я вытащил эти значения для отображения, однако мне нужно сначала немного изменить значения (с возмущение данных). Например:

a: 0.123
b: 0.011
c: 0.003

будет возмущен и показан как:

a: 0.125
b: 0.010
c: 0.001

если бы я нарисовал тот же отчет во второй раз, я мог бы получить что-то вроде:

a: 0.119
b: 0.005
c: 0.005

Идея состоит в том, чтобы сделать возмущение непредсказуемым от значения к значению, сохраняя значение близко к оригиналу. Может увеличиваться на 0,001, а затем уменьшаться на 0,003 при следующем значении.

Ни в коем случае значение не должно становиться отрицательным или равным 0. Если у меня есть .001, это должно быть случайным образом возмущено вверх, чтобы впоследствии оно было .001 или выше.

В настоящее время я использую это, чтобы возмущать значения больше 1, и это работает нормально. Когда передано значение ниже 1, мои возмущенные значения не имеют смысла.

    $perturbed = $v + ( mt_rand( $v*(-1), 40) / 100 );

Например, если $ v равен .04, $ возмущенный может в конечном итоге быть .99, что статистически выходит за пределы диапазона для данного $ v.

Набор данных является относительно большим, поэтому любое решение не требует больших затрат вычислительной мощности.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]