Averages/Mode: Difference between revisions

Line 1,577:
We use Inventory with keys as numbers (internal are strings). Inventories work with hash function. So searching is very fast.
 
Function return an inventory, with all "modes" with same max number. Now work with mix numbers and strings
 
<lang M2000 Interpreter>
Line 1,587:
m=1
While not empty {
if readislet Athen {
if Exist(N, A) then {Read A$
k=Eval if Exist(N, A$) then {
k++=Eval(N)
if m=k then { k++
Append ALLMODES,if Am=k then {
} Append ALLMODES, A$
if m<k then m=k : Clear ALLMODES : Append ALLMODES, A}
return N, A: if m<k then m=k : Clear ALLMODES : Append ALLMODES, A$
} Else Append N, A:=1 : if m=1 then Append ALLMODESreturn N, A$:=k
} Else Append N, A$:=1 : if m=1 then Append ALLMODES, A$
 
} else {
Read A
if Exist(N, A) then {
k=Eval(N)
k++
if m=k then {
Append ALLMODES, A
}
if m<k then m=k : Clear ALLMODES : Append ALLMODES, A
return N, A:=k
} Else Append N, A:=1 : if m=1 then Append ALLMODES, A
}
}
=ALLMODES
Line 1,606 ⟶ 1,620:
m=A()
Print GetMode(!m) ' print 2 3
z=stack:=1, 2,"B", 3, 1, 2, "B", 4, 2, 5,"B", 2, 3, 3, 1, 3, 6, "B"
Print GetMode(!z) ' print 2 3 B
}
Checkit
Anonymous user