我正在帮助我的朋友在 python 中做逻辑算法,但我还没有找到最好的解决方案。
首先,我有一个数组列表:
x = array[0,1,2,3,4,3,2,3,-2,-4,-7,2,2]
他想对 x 进行分类,所以输出变成这样:
array([0,1,2,3,4]) # increasing value
array([4,3,2]) #decreasing value
array([2,3]) # increasing value
array([3,-2,-4,-7]) #decreasing value
array([-7,2]) # increasing value
array([2,2]) # remain_the_same_value
规则很简单:
- 如果值不断增加(如上面的示例:0,1,2,3,4),它们将放入一个数组中
- 如果该值不断减小(如上例:3、-2、-4、-7),则将其放入一个数组中
- 但是,如果值模式发生突然变化,例如上面的示例:从增加的值 (0,1,2,3,4) 突然下一个值正在减少。将制作新数组并放入最后一个增加的值(4)并监视下一个值,无论它是否是减少值。如果是,它们将被放在一个数组中。示例:数组([4,3,2])
- 如果值保持不变(如上面的示例,从 2 到 2)。它们将被放在一个数组中。
这就是我到目前为止所做的,但离解决方案还很远
#categorize which types of input
if len(x) > 2 :
for i in range(len(x)) :
if (x[i+1]-x[i]) > 0 and i+i < len(x) : # for increasing x value
elif (x[i+1]-x[i]) < 0 and i+i < len(x) : # for decreasing x value
elif (x[i+1]-x[i]) == 0 and i+i < len(x) : # for foward direction of vehicle
else :
print 'ERROR : check the input coordinates once again!'
此致,
格伦