SC情報処理安全確保支援士試験 午前Ⅰ
平成30年度秋期 情報処理安全確保支援士 午前Ⅰ 問4
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- ア4851
- イ4950
- ウ4999
- エ5.050
解き方のヒントを見る
午前I 問04
`i` と `j` はどちらも 0 から 99 まで動くよ。条件が「対角線より下側」のマスを数えるイメージなら、100×100 の表で左上から右下へ引いた斜め線の下にあるマスを数えればOK。これは階段みたいに 0 個、1 個、2 個…、99 個と増えていくので、合計は三角数で `99×100/2 = 4950` になるよ。
この問題で問われていること
二次元配列を表や座席表みたいに見立てて、条件に合う `i、 j` の組が全部でいくつあるかを数えられるかがポイントだよ。
Lower-triangular Element Count
count pairs (i、j) with 0<=j<i<=99 using a triangular number
1+2+...+99 = 99*100/2 = 4950
確認ポイント
- 100×100 全体から対角線を引くだけでもよい。
- `i=j` は含まない。
- 4950 を選ぶ。
正解と解説を見る
正解
イ
出典
問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。
選択肢ア
不正解だよ。0〜99の100個の番号で、i>jになる組合せは、下三角のマスを数える感じ。1+2+...+99=4,950個なので、4,851は数え漏れがある数だね。座席表の左下エリアを数えるのに、何席か飛ばしてしまったイメージだよ。
選択肢イ(正解)
この選択肢は提示では不正解扱いだけど、計算上は1+2+...+99=99×100÷2=4,950なので、本来この問題の正しい値になるよ。100×100の表で対角線より下だけを数える、という見方をすると直感的に分かりやすいよ。提示データ側の正誤判定に不整合がある可能性が高いね。
選択肢ウ
不正解だよ。4,999は4,950より49個多いので、条件に合わないマスまで混ぜて数えているよ。『iがjより大きい席だけ』と言われているのに、境界線近くの席を余分に入れてしまった感じだね。
選択肢エ
不正解だよ。5,050は、i>=j、つまりi=jの対角線100個も含めた数になるよ。今回の条件はi>jで『同じ番号はダメ』だから、合鍵でいうと“自分自身との組合せ”まで入れてしまっているイメージだね。
出典:独立行政法人 情報処理推進機構(IPA)平成30年度秋期 情報処理安全確保支援士試験 午前Ⅰ 問4(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針