Task[edit]
Compute all three of the Pythagorean means of the set of integers 1 through 10 (inclusive).

Show that 



A
(

x

1


,
…
,

x

n


)
≥
G
(

x

1


,
…
,

x

n


)
≥
H
(

x

1


,
…
,

x

n


)


{\displaystyle A(x_{1},\ldots ,x_{n})\geq G(x_{1},\ldots ,x_{n})\geq H(x_{1},\ldots ,x_{n})}

 for this set of positive integers.

 The most common of the three means, the arithmetic mean, is the sum of the list divided by its length:
 



A
(

x

1


,
…
,

x

n


)
=




x

1


+
⋯
+

x

n



n




{\displaystyle A(x_{1},\ldots ,x_{n})={\frac {x_{1}+\cdots +x_{n}}{n}}}


 The geometric mean is the 



n


{\displaystyle n}

th root of the product of the list:
 



G
(

x

1


,
…
,

x

n


)
=




x

1


⋯

x

n




n





{\displaystyle G(x_{1},\ldots ,x_{n})={\sqrt[{n}]{x_{1}\cdots x_{n}}}}


 The harmonic mean is 



n


{\displaystyle n}

 divided by the sum of the reciprocal of each item in the list:
 



H
(

x

1


,
…
,

x

n


)
=


n



1

x

1




+
⋯
+


1

x

n









{\displaystyle H(x_{1},\ldots ,x_{n})={\frac {n}{{\frac {1}{x_{1}}}+\cdots +{\frac {1}{x_{n}}}}}}




See also
Tasks for calculating statistical measures



in one go
moving (sliding window)
moving (cumulative)

Mean
Arithmetic

Statistics/Basic
Averages/Arithmetic mean
Averages/Pythagorean means


Averages/Simple moving average




Geometric

Averages/Pythagorean means




Harmonic

Averages/Pythagorean means




Quadratic

Averages/Root mean square




Circular

Averages/Mean angle
Averages/Mean time of day




Median

Averages/Median




Mode

Averages/Mode




Standard deviation

Statistics/Basic



Cumulative standard deviation






 
Module CheckIt {
      sum=lambda -> {
              Read m as array
              if len(m)=0 then =0 : exit
              sum=Array(m, Dimension(m,0))
              If len(m)=1 then =sum : exit 
              k=each(m,2,-1)
              While k {
                  sum+=Array(k)
            }
            =sum
      }
      mean=lambda sum (a as array) ->{
            =sum(a)/len(a)
      }
      prod=lambda -> {
              m=array
              if len(m)=0 then =0 : exit
              prod=Array(m, Dimension(m,0))
              If len(m)=1 then =prod : exit 
              k=each(m,2,-1)
              While k {
                  prod*=Array(k)
            }
            =prod
      }
      geomean=lambda prod (a as array) -> {
            =prod(a)^(1/len(a))
      }
      harmomean=lambda (a as array) -> {
              if len(a)=0 then =0 : exit
              sum=1/Array(a, Dimension(a,0))
              If len(a)=1 then =1/sum : exit 
              k=each(a,2,-1)
              While k {
                  sum+=1/Array(k)
            }
            =len(a)/sum      
      }
      Print sum((1,2,3,4,5))=15
      Print prod((1,2,3,4,5))=120
      Print mean((1,2,3,4,5))==3
      \\ use == to apply rounding before comparison
      Print geomean((1,2,3,4,5))==2.60517108469735
      Print harmomean((1,2,3,4,5))==2.18978102189784
      Generator =lambda x=1 ->{=x : x++}
      dim a(10)<<Generator()
      Print mean(a())==5.5
      Print geomean(a())==4.52872868811677
      Print harmomean(a())==3.41417152147412
}
CheckIt
 