RosettaCodeData/Task/Diversity-prediction-theorem/PureBasic/diversity-prediction-theore...

42 lines
932 B
Plaintext

Define.f ref=49.0, mea
NewList argV.f()
Macro put
Print(~"\n["+StrF(ref)+"]"+#TAB$)
ForEach argV() : Print(StrF(argV())+#TAB$) : Next
PrintN(~"\nAverage Error : "+StrF(vari(argV(),ref),5))
PrintN("Crowd Error : "+StrF((ref-mea)*(ref-mea),5))
PrintN("Diversity : "+StrF(vari(argV(),mea),5))
EndMacro
Macro LetArgV(v)
AddElement(argV()) : argV()=v
EndMacro
Procedure.f mean(List x.f())
Define.f m
ForEach x() : m+x() : Next
ProcedureReturn m/ListSize(x())
EndProcedure
Procedure.f vari(List x.f(),r.f)
NewList nx.f()
ForEach x() : AddElement(nx()) : nx()=(r-x())*(r-x()) : Next
ProcedureReturn mean(nx())
EndProcedure
If OpenConsole()=0 : End 1 : EndIf
Gosub SetA : ClearList(argV())
Gosub SetB : Input()
End
SetA:
LetArgV(48.0) : LetArgV(47.0) : LetArgV(51.0)
mea=mean(argV()) : put
Return
SetB:
LetArgV(48.0) : LetArgV(47.0) : LetArgV(51.0) : LetArgV(42.0)
mea=mean(argV()) : put
Return