我有一个x
数值列表。
首先,我指定一个范围。我想从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)