コミュニティアイコン プチコン 非公式コミュニティ プレイ日記

アバター
スケさん ◆YJjXHENp4drH
2018/1/8 22:04
質問です。配列変数の中から一番数が大きい物を検出する方法はありますか?

コメント

アバター
だにえる 2018/1/8 22:48 ◆m76OCAQyrWGt
っMAX
アバター
キルル2 2018/1/8 23:08 ◆rGE712Ruejv7
大きいではなく多いですか?
{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

まあこのプログラムは無駄なことやってる気もしますが
アバター
スケさん 2018/1/9 21:41 ◆YJjXHENp4drH
すいません。数が大きいものです。
アバター
しんいち 2018/1/9 23:12 ◆lHy.hAWXbthn
ふと思ったこと。
複数の配列変数の中で一番要素数の多い(要は一番長い)配列を検出する、って考えると意外とめんどくさそう。例えば一番の長さは10だとして、10と出力するのは簡単だけど、その10はどの配列?10の配列を特定したとして、じゃあ何を示す?配列変数名を出力する?配列自体を返すDEFにする(のが実用的か)?とか。
話が逸れましたね。失礼しました。

あ、1つの配列変数の中の一番大きい値を検出するなら、だにえるさんの通りMAXで良いです。
アバター
キルル2 2018/1/9 23:22 ◆rGE712Ruejv7
最も大きい数を求めるだけなら
max(array)
これです

しんいちさん
配列変数名で良いのでは?
アバター
しんいち 2018/1/10 0:47 ◆lHy.hAWXbthn
>キルル2さん
うん、まぁ、配列変数名知りたい場合はそれで良いんですけど、そんな場合ってほとんど無いなぁと思いまして^^; そして汎用的なDEFは作れないような気がするし。

配列の中で一番多く登場する数を求めるには、SORTを使うと楽だと思いました。

コメントを書く

この投稿にはコメントできません。

- WEB PATIO -