Вычисление медианы

Опубликовано в QLua

Вычисление медианного значения переданных параметров

 

Медианное значение делит распределение случайной величины на две равные части.

-- Возвращает медианное значение переданных функции параметров
function math.median(...)
   local tbl = {...}
   table.sort(tbl)
   local n = #tbl

   if n ~= 0 then
      if n % 2 == 0 then
         n = n * 0.5
         return (tbl[n] + tbl[n+1]) * 0.5
      end
      return tbl[(n + 1) * 0.5]
   end
end
Комментарии   
0 # mad31 27.09.2022 19:10
return tbl[(n + 1) * 0.5]
В этой строчке tbl[(n + 1) будет nill
+1 # admin 27.09.2022 22:27
Вы невнимательно прочитали код

в случае нечетного положительного n индекс (n + 1) * 0.5 никогда не будет больше n
0 # mad31 28.09.2022 07:44
Да, действительно. С утра свежим взглядом увидел свою ошибку. Спасибо.

Недостаточно прав для комментирования

Архив QLua