У меня есть список x
значений чисел.Контур обратной связи Python для получения определенного количества точек в диапазоне около медианы
Для начала я указываю диапазон. Я хочу получить значения от x
, которые лежат в этом диапазоне. Диапазон значений будет ± R
из медианы x
. Я хочу настроить R
для получения определенного количества значений N
. Единственный способ, который я вижу в достижении этого, - это какой-то цикл обратной связи. Что было бы быстрым и эффективным способом максимально приблизить к N
, насколько это возможно?
например.
x = ['3','5','1','2','4']
Я хочу, чтобы диапазон значений от 3-R<3<3+R
в 3
является медианой. Скажем, N = 3
. Полученные значения были бы ['2','3','4']
с R
работал в качестве 1.
Пример кода:
N = 3
x = ['3','5','1','2','4']
R = 1
n = some number to allow room for error
y = values of x in range ±R from median
while len(y) > N+n or len(y) < N-n:
if len(y) > N+n:
R -= ADJUST VALUE PROPORTIONAL TO ERROR HERE?
if len(y) < N-n:
R += ADJUST VALUE PROPORTIONAL TO ERROR HERE?
y = values of x in range ±R from median (update y list with new R)