Averages/Median: Difference between revisions
Content added Content deleted
m (added whitespace to the task's preamble.) |
(→{{header|Elixir}}: removed unnecessary division.) |
||
Line 783: | Line 783: | ||
def median([]), do: nil |
def median([]), do: nil |
||
def median(list) do |
def median(list) do |
||
len = |
len = length(list) |
||
sorted = Enum.sort(list) |
sorted = Enum.sort(list) |
||
mid = div(len, 2) |
mid = div(len, 2) |
||
if rem(len,2) == 0, do: (Enum.at(sorted, mid-1) + Enum.at(sorted, mid)) / 2, |
|||
rem = rem(len, 2) |
|||
else: Enum.at(sorted, mid) |
|||
end |
end |
||
end |
end |
||
median = fn list -> IO.puts "#{inspect list} => #{inspect Average.median(list)}" end |
median = fn list -> IO.puts "#{inspect list} => #{inspect Average.median(list)}" end |
||
median.([]) |
median.([]) |
||
Line 800: | Line 800: | ||
<pre> |
<pre> |
||
[] => nil |
[] => nil |
||
[ |
[4] => 4 |
||
[ |
[1, 6] => 3.5 |
||
[ |
[5, 2, 4] => 4 |
||
[ |
[2, 3, 5, 1] => 2.5 |
||
[ |
[3, 2, 6, 3, 2] => 3 |
||
[ |
[6, 4, 2, 3, 1, 3] => 3.0 |
||
</pre> |
</pre> |
||