平成30年度秋期 応用情報技術者試験 午前 問7

分野:アルゴリズムとプログラミング|実際に出題されたIPA過去問題

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
解答・解説を見る

正解:イ

AI解説

i, jはそれぞれ0〜99の100通りで、全要素は100×100=10,000個ある。このうち対角線上(i=j)の要素は100個で、残り10,000−100=9,900個はi>jの領域とi<jの領域に対称に半分ずつ分かれる。したがってi>jの要素は9,900÷2=4,950個となり、イが正しい。 ア: 4,851=99×98/2は、99×99の配列で計算した場合などの誤りで、要素数の数え間違いによる値である。 イ: 正しい。(10,000−100)÷2=4,950。これは99+98+…+1=99×100/2の総和計算とも一致する。 ウ: 4,999は誤った引き算による値で、対称性を使った正しい計算にはならない。 エ: 5,050=100×101/2は1から100までの総和で、i≧jの個数(4,950+100)や1〜100の和と混同した値である。 💡 正方行列の「対角線より下(上)」の個数は(全体−対角線)÷2で求めるのが速い。n×nならn(n−1)/2個。等差数列の和1+2+…+(n−1)としても同じ結果になる。

出典:平成30年度 秋期 応用情報技術者試験 午前 問7 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「アルゴリズムとプログラミング」分野の攻略ポイント

データ構造・アルゴリズム・探索と整列・計算量・擬似言語・プログラム言語・データ記述言語が対象です。擬似言語のトレースは時間はかかるものの、落ち着いて表を書けば必ず正解にたどり着く「確実に取れる」問題です。

アルゴリズムとプログラミングの攻略ポイントをすべて見る(要点6項目・ひっかけ3項目)→

同じ分野(アルゴリズムとプログラミング)の過去問