@634

モード(最頻値)

Advertisement

説明

いくつかの数の中で最も個数が多い値。

手順

  1. 配列をソート
  2. カウント ← 0
  3. 先頭から連続した値を数える
  4. 値の数が現在のカウントより多ければ、カウントにその値の数を保持する。
  5. 次の連続した値を数える
  6. データがなくなるまで4と5を繰り返す

モード算出

import java.util.*;

class Averages{
    //モード(最頻値)の算出
    //返却値:int
    public static int getMode(int[] x){
        int[] work = (int[])x.clone();
        //配列をソート
        Arrays.sort(work);

        int mNumber = 0;
        int mCount = 0;
        int j;
        int cnt;
        for(int i = 0; i < work.length; i = i + cnt){
            cnt = 1;
            for(j = i + 1; j < work.length; j++){
                if(work[i] == work[j]){
                cnt = cnt + 1;
                }else{
                    break;
                }
            }
            if(cnt > mCount){
                mNumber = i;
                mCount = cnt;
            }
        }

        return work[mNumber];
    }
}

Advertisement

ショートカット

634
634ブログ
このカテゴリのトップページに戻る
Incubator(Pukiwiki)
634ラボ
   UIコレクションギャラリー
   ZO-3ジェネレーター

サイト検索


Y!ログール