メインコンテンツへスキップ
基本情報技術者2013年度 秋期午前問 7

2013年度 秋期 基本情報技術者 午前 問7

難度標準

次の規則に従って配列の要素 A[0], A[1],..., A[9] に正の整数kを格納する。kと して 16,43,73,24,85を順に格納したとき,85 が格納される場所はどこか。ここ で、x mod yは、xをyで割った剰余を返す。また、配列の要素は全て0に初期化され ている。

〔規則]

(1) A[k mod 10] = 0ならば、kをA[k mod 10]に格納する。

(2) (1)で格納できないとき, A[(k+1) mod 10] = 0ならば、kをA[(k+1) mod 10] に 格納する。

(3) (2)で格納できないとき, A[(k+4) mod 10] = 0ならば、kをA[(k+4) mod 10] に 格納する。

選択肢

解説

結論 → 詳細 → 補足 の 3 層構成

展開
結論Layer 1

正解はエです。この問題は、ハッシュテーブルにおける線形探索(リニアプロービング)と呼ばれる衝突解決手法を理解しているかを問うものです。配列Aは要素数10のハッシュテーブルとして機能し、k mod 10 はハッシュ関数となります。

詳細Layer 2
展開

まず、k=16を格納します。16 mod 10 = 6 です。A[6]は0なので、A[6] = 16 となります。

補足Layer 3
展開

次に、k=43を格納します。43 mod 10 = 3 です。A[3]は0なので、A[3] = 43 となります。

次に、k=73を格納します。73 mod 10 = 3 です。A[3]は43で埋まっているため、規則(1)で格納できません。規則(2)を適用し、(73+1) mod 10 = 4 を確認します。A[4]は0なので、A[4] = 73 となります。

次に、k=24を格納します。24 mod 10 = 4 です。A[4]は73で埋まっているため、規則(1)で格納できません。規則(2)を適用し、(24+1) mod 10 = 5 を確認します。A[5]は0なので、A[5] = 24 となります。

最後に、k=85を格納します。85 mod 10 = 5 です。A[5]は24で埋まっているため、規則(1)で格納できません。規則(2)を適用し、(85+1) mod 10 = 6 を確認します。A[6]は16で埋まっているため、規則(2)でも格納できません。規則(3)を適用し、(85+4) mod 10 = 9 を確認します。A[9]は0なので、A[9] = 85 となります。したがって、85はA[9]に格納されます。

選択肢ア、イ、ウは、それぞれA[3]、A[5]、A[6]に格納される値が異なるため誤りです。

この解説は?
AI生成

解説は公式の問題文・公式解答を基に作成しています。 事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があるため、 重要な判断は必ずリンク先の公式資料でご確認ください。

最終更新:

検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。

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

この問題の理解を「分野全体の力」に広げるための足がかり

何が問われるか
計算量(O 記法)・基本データ構造・典型アルゴリズム(探索・整列)・再帰の挙動を読む力。
学習の進め方
擬似コードを実際にトレースして変数の遷移を表に書き出す習慣を付ける。スタック/キュー/木の図示が定着の鍵。
関連キーワード
計算量二分探索クイックソート再帰スタックキュー木構造
この分野の問題をもっと解く
AI コパイロット

この問題を AI と深掘りする

用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。

クイズモードで開く

関連する問題

アルゴリズムとプログラミング の他の問題

他試験区分の同分野問題

基本情報技術者 と共通カリキュラムの他区分で「アルゴリズムとプログラミング」分野を演習する

他年度の「アルゴリズムとプログラミング」問題

基本情報技術者 の同じ分野を年度をまたいで演習する

基本情報技術者 の学習ガイド