Averages/Pythagorean means: Difference between revisions

no edit summary
No edit summary
Line 1,747:
print(a, g, h)
assert(a >= g and g >= h)</lang>
=={{header|M2000 Interpreter}}==
 
<lang M2000 Interpreter>
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
</lang>
 
=={{header|Maple}}==
Anonymous user