Averages/Pythagorean means: Difference between revisions
Content added Content deleted
No edit summary |
|||
Line 1,747: | Line 1,747: | ||
print(a, g, h) |
print(a, g, h) |
||
assert(a >= g and g >= h)</lang> |
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}}== |
=={{header|Maple}}== |