平成30年度秋期 応用情報技術者試験 午前 問7
2次元配列A[i, j](i, jはいずれも0~99の値をとる)のi>jである要素A[i, j]は全部で幾つか。
- ア 4,851
- イ 4,950
- ウ 4,999
- エ 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に帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。