我有一个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)