Mam taki problem mam napisany w PHP algorytm wyliczający różnicę w zbiorze liczb czyli jak mamy tablicę liczb -20,20 to dla tego zbioru wyliczy różnicę 400 a dla zbioru 10,10 już będzie 0 i teraz mam napisane dwie funkcje o różnych algorytmach
public function sortMoodOld($list) {
$sort = $list;
if (count($sort) % 2 == 1) {
$average = array_sum($sort)/count($sort);
array_push($sort, $average);
}
asort($sort);
$count = count($sort)-1;
$tmp = 0;
$tmp2 = 0;
for ($i=0;$i < count($sort) / 2;$i++) {
$tmp = $sort[$count] - $sort[$i];
//}
$count--;
if ($tmp < 0) {
$tmp = -$tmp;
}
$tmp2 += $tmp;
}
if (count($sort) == 0) {
return 0;
}
return ((($tmp2 / count($sort)) * 5));
}
public function sortMood($list) {
$tmp = 0;
$tmp2 = 0;
for ($i=0;$i < count($list)-1;$i++) {
//if (count($list)-1 == $i) {
//break;
//}
//if ($list[$i+1] == 0) {
//$tmp =100;
//}
//else {
$tmp = ((((($list[$i]) ) / 20) * 100) - ((($list[$i+1] ) / 20) * 100 ));
//}
if ($tmp < 0) {
$tmp = -$tmp;
}
$tmp2 += $tmp;
}
return ((($tmp2 / count($list))) );
}
No i teraz te dwie funkcje działają dobrze tylko mi chodzi o taki algorytm, który będzie wykazywał większą różnicę między liczbą np. 0 i 0.2 niż w liczbie 0.3 0.7. Chodzi mi o to, że jak liczba jest bliższa 0 to ma być wieksza różnica i tego nie wiem jak to zrobić.