【发布时间】:2017-07-14 13:13:57
【问题描述】:
$data = array(5,0,15,20,22,14,13,15,12,22,40,25);
嗨,我想遍历上面的数据点并根据范围找到转折点。
到目前为止,我处理它的方式只是采用 $array[$i] - $array[$i-1] ,如果绝对差大于范围 - 我将其视为转折点 。但是 - 逻辑是有缺陷的,好像它稍微向上移动然后又向下移动 - 它打破了循环。
3 个向下的值应该足以使 X 成为向下的转折点,但是因为它们单独不符合范围 - 它们被丢弃了。
有什么解决办法吗?
if($diff >= 0)
{
$diff_up = $diff_up + $diff;
}
else
{
$diff_down = $diff_down + abs($diff);
}
if((($diff_up-$diff_down) >=$range) && ($pivot_type != "UP"))
{
echo "Pivot UP at : ".$current;
break;
}
else if((($diff_down-$diff_up) >$range) && ($pivot_type != "DOWN"))
{
echo "Pivot DOWN at : ".$current;
break;
}
【问题讨论】:
-
您能否更清楚地说明“转折点”的标准?为此,您很可能需要一个稍微复杂的算法。
-
数组中,转折点在哪里?向我们展示一个预期的输出数组
-
@Kylon Tyner - 基本上是图表开始向上或向下移动的点,给定一个范围,例如:20
-
@Andreas - [5,0,22,13,40]
-
不应该是[5,0,22,12,40]?