对于下面的数组,它是~20
但是如何以编程方式获取它?
array(12) {
[0]=>
int(29)
[1]=>
int(50)
[2]=>
int(72)
[3]=>
int(93)
[4]=>
int(114)
[5]=>
int(136)
[6]=>
int(157)
[7]=>
int(178)
[8]=>
int(199)
[9]=>
int(221)
[10]=>
int(242)
[11]=>
int(263)
}
答案 0 :(得分:1)
什么阻止你(伪代码):
diff = 0
for i from 0 to (array length)-2 # this should be run (array length)-1 times total
diff += Math.abs(array[i]-array[i+1])
end
return diff/(array length-1)
如果PHP为可枚举方法注入(或减少)或映射(或数组遍历)方法,这将更加简洁。
注意我只提供此伪代码作为用于解决此问题的不言而喻的算法。我承认我不是PHP的主人(相反,我从算法的角度来看这个问题);我只是想知道为什么这个简单的解决方案不能被提问者采纳。如果有一个答案可以做同样的事情,基本上,用适当的PHP做,请在我的上面选择它。
答案 1 :(得分:0)
$difference = 0;
$length = count($array);
for ($i=1; $i < $length; $i++)
$difference += abs($array[$i] - $array[$i-1]);
if ($length !== 0)
$result = $difference / $length;
else
$result = 0;