大きいではなく多いですか? {0,0,1,1,1,2,3,5,8} があるとして 一番多く出現するのは1、というやつ? もしそれなら以下の関数を作ればいけそうです def search(array) var v,t,c var l=len(array) var x[0] var i for i=0 to l-1 t=array[i] if chk(x,t)<0 then push x,t next var p[len(x)] for i=0 to l-1 var f=chk(x,array[i]) if f>=0 then t=p[f]+1 if t>c then c=t v=i p[f]=t endif next return array[v] end
def chk(array,n) var l=len(array) var i,v=-1 for i=0 to l-1 if array[i]==n then v=i break next return v end
まあこのプログラムは無駄なことやってる気もしますが
PERIOD.DOT2018/1/9 0:10 ネタバレ◆WR0bRCjR7slG
無駄と思っていても実は内部の構造を知ることに繋がってるかもですよ。
このコメントはネタバレを含んでいます。
キルル22018/1/9 16:50 ネタバレ◆rGE712Ruejv7
関数searchのプヨグヤムをちょっと短くしました def search(array) var v,t,c var l=len(array),i var x[0],p[0] for i=0 to l-1 t=array[i] var f=chk(x,t) if f<0 then push x,t push p,1 else t=p[f]+1 if t>c then c=t v=i p[f]=t endif next return array[v] end
'@@param target[] 実数型か整数型の一次元配列 def mostencount(target[]) ' 一番出てくる数を探す var i%,s% dim lsi[0],count%[0] for i%=0 to len(target)-1 s%=len(lsi)-1 for j%=0 to s% if lsi[j%]==target[i%] then inc count%[i%] break endif next if j%==s% then push lsi%,target[i%] push count%,1 endif next return lsi%[max(count%)] end ですかね・・・?