Averages/Pythagorean means: Difference between revisions
Content added Content deleted
(→{{header|VBA}}: Excel has also built-in average and geometric mean) |
|||
Line 3,316: | Line 3,316: | ||
3.41417152147406 |
3.41417152147406 |
||
</pre> |
</pre> |
||
=={{header|Visual Basic .NET}}== |
|||
{{trans|C#}} |
|||
<lang vbnet>Imports System.Runtime.CompilerServices |
|||
Module Module1 |
|||
<Extension()> |
|||
Function Gmean(n As IEnumerable(Of Double)) As Double |
|||
Return Math.Pow(n.Aggregate(Function(s, i) s * i), 1.0 / n.Count()) |
|||
End Function |
|||
<Extension()> |
|||
Function Hmean(n As IEnumerable(Of Double)) As Double |
|||
Return n.Count() / n.Sum(Function(i) 1.0 / i) |
|||
End Function |
|||
Sub Main() |
|||
Dim nums = From n In Enumerable.Range(1, 10) Select CDbl(n) |
|||
Dim a = nums.Average() |
|||
Dim g = nums.Gmean() |
|||
Dim h = nums.Hmean() |
|||
Console.WriteLine("Arithmetic mean {0}", a) |
|||
Console.WriteLine(" Geometric mean {0}", g) |
|||
Console.WriteLine(" Harmonic mean {0}", h) |
|||
Debug.Assert(a >= g AndAlso g >= h) |
|||
End Sub |
|||
End Module</lang> |
|||
{{out}} |
|||
<pre>Arithmetic mean 5.5 |
|||
Geometric mean 4.52872868811677 |
|||
Harmonic mean 3.41417152147406</pre> |
|||
=={{header|XPL0}}== |
=={{header|XPL0}}== |