我有这个功能,我试图将其放在一行上,但是我无法弄清楚如何在同一行上实现sort()。
# Mediana x̃ de un conjunto de elementos ($e)
Mediana($e=array()){
sort($e);
return (count($e)!=0)?((count($e)%2==0)?(($e[(count($e)/2)]+$e[((count($e)/2)+1)])/2):$e[((count($e)/2)+1)]):0;
}
[我不喜欢(从审美上来说)肮脏的方式:
sort($e); return (count($e)!=0)?((count($e)%2==0)?(($e[(count($e)/2)]+$e[((count($e)/2)+1)])/2):$e[((count($e)/2)+1)]):0;
[如果有人能给我一些提示,我将非常感激。Tnx。
您可以在条件中包括sort()
,因此方法返回布尔值,并且在这种情况下,一旦排序后的数组保持排序状态。
function Mediana($e = array())
{
return (count($e) != 0 && sort($e)) ? ((count($e) % 2 == 0) ? (($e[(count($e) / 2)] + $e[((count($e) / 2) + 1)]) / 2) : $e[((count($e) / 2) + 1)]) : 0;
}
或
function Mediana($e = array())
{
return (sort($e) && count($e) != 0) ? ((count($e) % 2 == 0) ? (($e[(count($e) / 2)] + $e[((count($e) / 2) + 1)]) / 2) : $e[((count($e) / 2) + 1)]) : 0;
}