2019.09.05

中央値

中央値とは

中央値とは、複数の値を小さいほうから並べたときに中央に位置する値のことです。

与えられた数値の数が奇数の場合は中央に位置する値を中央値とし、偶数の場合は中央に近い2つの値の平均値中央値とします。

以下は、中央値を求める例です。

Javaソースコード

以下が、中央値を求めるJavaソースコードです。

Median.java

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
import java.util.Arrays;

public class Median {
	public static void main( String[] args ) {
		// 配列aを宣言
		int[] a;

		// 中央値を代入する変数を宣言
		double median;

		// 要素数8を設定
		a = new int[ 8 ];

		// 値を代入
		a[ 0 ] = 4;
		a[ 1 ] = 9;
		a[ 2 ] = 2;
		a[ 3 ] = 1;
		a[ 4 ] = 5;
		a[ 5 ] = 3;
		a[ 6 ] = 7;
		a[ 7 ] = 8;

		// 昇順ソート
		Arrays.sort( a );

		// 配列の中間
		int m = a.length / 2;

		// 中央値
		if ( 0 != ( a.length % 2 ) ) {
			// 配列の個数が奇数
			median =  (double)a[ m ];
		}
		else {
			// 配列の個数が偶数
			median =  (double)( a[ m - 1 ] + a[ m ] ) / 2.0;
		}

		// 結果表示
		System.out.println( "中央値 : " + median );
	}
}

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis Median.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac Median.java

実行

C:\talavax\javasample>java Median

実行結果

中央値 4.5

Javaソースコードの解説

それでは、ここから中央値を求めるJavaソースコードについて解説します。

001
import java.util.Arrays;

Javaクラスライブラリの中から「java.util.Arrays」というパッケージにあるクラスを、このプログラム内で使うために記述します。 この記述により、Arraysクラスが利用できるようになります。

003
public class Median {

クラス名を、Medianとしています。

004
	public static void main( String[] args ) {

このmainメソッドからプログラムを実行します。

005
006
007
008
009
		// 配列aを宣言
		int[] a;

		// 中央値を代入する変数を宣言
		double median;

このプログラムで使う変数を宣言しています。

011
012
013
014
015
016
017
018
019
020
021
022
		// 要素数8を設定
		a = new int[ 8 ];

		// 値を代入
		a[ 0 ] = 4;
		a[ 1 ] = 9;
		a[ 2 ] = 2;
		a[ 3 ] = 1;
		a[ 4 ] = 5;
		a[ 5 ] = 3;
		a[ 6 ] = 7;
		a[ 7 ] = 8;

int型配列aの要素数を8個で初期化し、任意の値を代入しています。

024
025
		// 昇順ソート
		Arrays.sort( a );

Arraysクラスのsortメソッドを使って配列aを昇順ソートしています。

ソート Arrays.sortメソッド

public static int Arrays.sort( byte[] a )
public static int Arrays.sort( char[] a )
public static int Arrays.sort( double[] a )
public static int Arrays.sort( float[] a )
public static int Arrays.sort( int[] a )
public static int Arrays.sort( short[] a )
・指定された配列を数値の昇順でソートします。

  パラメータ a : 昇順ソートする配列
027
028
		// 配列の中間
		int m = a.length / 2;

配列要素数を2で割った値をint型変数mに代入しています。この値が中央値の位置になります。

030
031
032
033
034
035
036
037
038
		// 中央値
		if ( 0 != ( a.length % 2 ) ) {
			// 配列の個数が奇数
			median =  (double)a[ m ];
		}
		else {
			// 配列の個数が偶数
			median =  (double)( a[ m - 1 ] + a[ m ] ) / 2.0;
		}

配列要素数奇数の場合は変数mの位置の配列aの値を中央値としてdouble型変数medianに型キャストして代入しています。

配列要素数偶数の場合は変数mの位置の配列aの値と、変数m-1の位置の配列aの値の平均値中央値として変数median代入しています。

この例で扱っている配列int型ですが、配列要素数偶数の場合の中央値が小数以下の値を持つことがあるので結果を格納する変数medianをdouble型にしています。、

040
041
		// 結果表示
		System.out.println( "中央値 : " + median );

結果を表示しています。

以上です。

関連コンテンツ

同じ型の変数(データ)を複数個まとめて管理するデータの持ちかたがあります。これが配列です。くわしくは、記事をご覧ください。

2016.01.14

配列に格納されている値を順番に並び替える方法を解説しています。

2019.03.11

偶数・奇数を判定する方法を詳しく説明しています。興味のある方は、ご覧ください。

2015.11.17

条件式を判断して処理を分岐する方法を詳しく説明しています。

2023.03.20

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

プログラミングで使う変数って何?

2020.03.23

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

Javaのプログラムを作ってみませんか?プログラミングに必要なものの用意から実行までを説明しています。

2020.03.23

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

Swingパッケージを使ってグラフィック表示を行う方法を解説しています。

2020.03.23

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

三角形、台形、円などいろいろな図形の面積を計算するプログラムを紹介しています。詳しくは、記事をご覧ください。

2021.05.18

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

プログラミング、ITに関する用語をまとめています。

2022.10.17

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

複数の数値の合計値と平均値を計算するプログラムをJavaのソースコードを使って解説しています。

2020.03.23

プログラミング言語とは?種類や特徴について説明しています。

2022.08.03

Javaプログラムの構成について解説しています。詳しくは、こちらをご覧ください。

2020.03.23

メソッドの定義方法を詳しく解説しています。Javaのサンプルソースコードを使った説明もあります。

2020.03.23

for文で変数名iがよく使われる理由について説明しています。興味のある方は是非。

2022.08.29

データの型を変換する方法を詳しく解説しています。例)int型 → long型

2015.11.01

「ゆるゆるプログラム」のコンテンツを紹介しています。興味のある方はこの記事をご覧ください。

2020.03.23

広告