応用情報技術者試験 平成30年秋 午前問7 解説付き過去問
問題
2次元配列 A[i, j] (i, j はいずれも0~99の値をとる)の i > j である要素 A[i, j] は全部で幾つか。
正解
解説
この問題は、2次元配列内で特定の条件を満たす要素の数を求める問題です。ここでの条件は、インデックスが i > j である場合の要素数です。
- 2次元配列とは
2次元配列 A[i, j] は、i と j の2つの次元を持つデータ構造で、行と列からなります。この問題では、i と j がともに 0 から 99 の範囲を取ります。 - i > j の条件の解釈
i > j という条件は、行のインデックス i が列のインデックス j より大きい場合に該当します。例えば、i = 1 のとき、j は 0 のみが条件を満たします。i = 2 のとき、j は 0 と 1 が条件を満たします。これを i = 99 まで続けると、各 i について j の取り得る値の数は 1 から 99 までの和(i - 1 の和)となります。 - 条件を満たす要素の総数の計算
条件 i > j を満たす要素の総数を計算するためには、各 i について可能な j の個数(1 から i - 1 までの自然数の和)を足し合わせます。この和は、式 n(n - 1)2 で表されることが知られており、n = 100 の場合、100(100 - 1)2 = 4,950 となります。
したがって、2次元配列 A[i,j] において i > j を満たす要素は全部で 4,950 個存在します。これが正解の根拠です。