SMITサービスマネージャ試験 午前Ⅰ

平成30年度秋期 ITサービスマネージャ 午前Ⅰ 問4

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

2 次元配列 A[i、 j] (i、 j はいずれも 0 ~ 99 の値をとる)の i>j である要素 A[i、 j] は全部で幾つか。

選択肢

  1. ア
    4、851
  2. イ
    4、950
  3. ウ
    4、999
  4. エ
    5、050
解き方のヒントを見る

添字の範囲と境界を確かめる

2次元配列の要素を条件付きで数える問題では、行と列の添字がそれぞれどの値から始まりどの値で終わるのか、そして条件に等号が含まれるかどうかを最初に確定させることが、数え間違いを防ぐ一番の土台になります。

この問題で問われていること

この問題で押さえたいのは、数える対象となる添字の組がどこからどこまでなのかという境界の扱いです。添字の開始値、配列の大きさ、条件式の不等号の向きと等号の有無を、自分の言葉で整理してから考え始めましょう。

視点

配列の添字は、0から始める約束と1から始める約束のどちらもあり得ます。どちらを採るかで、最初と最後の添字の値が変わります。また、条件に等号が含まれるかどうかで、境界にある添字の組を数に入れるかが変わります。数え上げの誤りは境界で起きやすいものです。規則を当てはめる前に、境界にあたる添字の組が条件を満たすかを一つずつ確かめると、自分の考えを検証しやすくなります。

確認ポイント

  • 行と列の添字がそれぞれ何から始まり何で終わるかを、問題の記述から確認したか
  • 条件式の不等号の向きと、等号を含むかどうかを読み取ったか
  • 境界にあたる添字の組が条件を満たすかを、実際に当てはめて確かめたか
正解と解説を見る

正解

イ

解説

iとjはどちらも0~99の100通りの値をとるため、全要素は100×100=10、000個です。このうちi=jの対角要素100個を除くと、残りはi>jとi<jで同じ数ずつに分かれます。したがって(10、000個−100個)÷2=4、950個となり、正解はイです。

計算の流れ

全要素数は100通り×100通り=10、000個です。i=jとなる対角要素は(0、0)~(99、99)の100個です。残りの9、900個は、i>jの要素とi<jの要素が同じ数ずつあります(iとjを入れ替えると互いに対応するため)。よってi>jの要素数は(10、000個−100個)÷2=4、950個です。別の数え方として、iごとにjの候補数を足し合わせても0+1+…+99=99×100÷2=4、950個となり、同じ結果になります。

比較

等号を含むi≥jの場合は、対角要素100個が加わるため4、950個+100個=5、050個です。また、添字の値が100通りではなく99通りだとすると99×98÷2=4、851個になります。問題の条件(0~99の100通り、等号を含まないi>j)に合うのは4、950個だけです。

選択肢ア

これは不正解だよ。4,851は正しい値4,950より99少ない値だよ。この値は、添字が99通りの場合の個数99×98÷2と一致するね。でも問題の添字は0~99の100通りなので、i>jの要素は(100×100−100)÷2=4,950個になるよ。

選択肢イ(正解)

これは正解だよ。全要素は100×100=10,000個で、i=jの対角要素100個を除いた9,900個が、i>jとi<jに同じ数ずつ分かれるよ。だから9,900÷2=4,950個だね。0+1+…+99=4,950と足し合わせても同じ結果になるよ。

選択肢ウ

これは不正解だよ。4,999は正しい値4,950より49多い値だよ。0~99の100通りでi>jの要素を数えると4,950個、等号を含むi≥jとしても5,050個になるので、どちらの数え方でも問題の条件からは4,999という値にならないね。

選択肢エ

これは不正解だよ。5,050は(10,000+100)÷2で求まるi≥jの要素数、つまり対角要素i=jの100個を含めた個数と一致するよ。問題の条件は等号を含まないi>jなので、対角要素100個を除いた4,950個が正しい個数だよ。

学習のポイント

0から始まる添字範囲の個数を数える(0~99なら100通り)こと、全体から対角要素を除き、残りを対称性で半分に分けることの2点を押さえましょう。等号を含むi≥jの場合と含まないi>jの場合の違いにも注意が必要です。

出典:独立行政法人 情報処理推進機構(IPA)平成30年度秋期 ITサービスマネージャ試験 午前Ⅰ 問4(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針