Diversity prediction theorem: Difference between revisions

Content added Content deleted
No edit summary
(→‎{{header|Ruby}}: More idiomatic; use 3.0 end-less methods)
Line 1,422: Line 1,422:
=={{header|Ruby}}==
=={{header|Ruby}}==
{{trans|D}}
{{trans|D}}
<lang ruby>def square(x)
<lang ruby>def square(x) = x * x
def mean(a) = a.sum(0.0) / a.size
return x * x
def mean_square_diff(a, predictions) = mean(predictions.map { |x| square(x - a) })
end

def diversity_theorem(truth, predictions)
def mean(a)
return a.sum(0.0) / a.size
end

def meanSquareDiff(a, predictions)
return mean(predictions.map { |x| square(x - a) })
end

def diversityTheorem(truth, predictions)
average = mean(predictions)
average = mean(predictions)
print "average-error: ", meanSquareDiff(truth, predictions), "\n"
puts "average-error: #{mean_square_diff(truth, predictions)}",
print "crowd-error: ", square(truth - average), "\n"
"crowd-error: #{square(truth - average)}",
print "diversity: ", meanSquareDiff(average, predictions), "\n"
"diversity: #{mean_square_diff(average, predictions)}",""
print "\n"
end

def main
diversityTheorem(49.0, [48.0, 47.0, 51.0])
diversityTheorem(49.0, [48.0, 47.0, 51.0, 42.0])
end
end

diversity_theorem(49.0, [48.0, 47.0, 51.0])
main()</lang>
diversity_theorem(49.0, [48.0, 47.0, 51.0, 42.0])</lang>
{{out}}
{{out}}
<pre>average-error: 3.0
<pre>average-error: 3.0