正解はエです。この問題は、ハッシュテーブルにおける線形探索(リニアプロービング)と呼ばれる衝突解決手法を理解しているかを問うものです。配列Aは要素数10のハッシュテーブルとして機能し、k mod 10 はハッシュ関数となります。
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 層構成
展開閉じる
解説
結論 → 詳細 → 補足 の 3 層構成
詳細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]に格納される値が異なるため誤りです。
分野「アルゴリズムとプログラミング」の学習ポイント
この問題の理解を「分野全体の力」に広げるための足がかり
- 何が問われるか
- 計算量(O 記法)・基本データ構造・典型アルゴリズム(探索・整列)・再帰の挙動を読む力。
- 学習の進め方
- 擬似コードを実際にトレースして変数の遷移を表に書き出す習慣を付ける。スタック/キュー/木の図示が定着の鍵。
- 関連キーワード
- 計算量二分探索クイックソート再帰スタックキュー木構造
この問題を AI と深掘りする
用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。
関連する問題
アルゴリズムとプログラミング の他の問題
- 基本情報技術者2009年度 秋期 午前 問3逆ポーランド表記法(後置表記法)で、“EF-G÷CD-AB+÷+”と表現される式はどれか。
- 基本情報技術者2009年度 秋期 午前 問5空のスタックに対して次の操作を行った場合、スタックに残っているデータはどれか。ここで、“push x”はスタックへデータを格納し、“pop”はスタックからデータを取り出す操作を表す。 push 1 → push 2 → pop → push 3 → push 4 → pop → …
- 基本情報技術者2009年度 秋期 午前 問6クイックソートの処理方法を説明したものはどれか。
- 基本情報技術者2009年度 春期 午前 問20000~4999 のアドレスをもつハッシュ表があり、レコードのキー値からアドレスに変換するアルゴリズムとして基数変換法を用いる。キー値が55550 のときのアドレスはどれか。ここで、基数変換法とは、キー値を 11 進数とみなし、10進数に変換した後、下4けたに対して 0.5 を…
- 基本情報技術者2009年度 春期 午前 問4文字列中で同じ文字が繰り返される場合、繰返し部分をその反復回数と文字の組に置き換えて文字列を短くする方法はどれか。
他試験区分の同分野問題
基本情報技術者 と共通カリキュラムの他区分で「アルゴリズムとプログラミング」分野を演習する
- 応用情報技術者令和7年度 秋期 午前 問6異なるn個のデータが昇順に整列された表がある。この表をm個のデータごとのブロックに分割し、各ブロックの最後尾のデータだけを線形探索することによって、目的のデータの存在するブロックを探し出す。次に、当該ブロック内を線形探索して目的のデータを探し出す。このときの平均比較回数を表す式は…
- ITパスポート令和6年度 CBT 午前 問62関数 convert は、整数型の配列を一定のルールで文字列に変換するプログラムである。関数 convert を convert (arrayInput)として呼び出したときの戻り値が“AABAB”になる引数 arrayInput の値はどれか。ここで、array Input の…
他年度の「アルゴリズムとプログラミング」問題
基本情報技術者 の同じ分野を年度をまたいで演習する
- 令和7年度 CBT基本情報技術者 科目A 問12オブジェクト指向プログラミングの特徴のうち,異なるクラスのオブジェクトを同 一のインタフェースで操作したときに,操作対象クラスに応じた異なる動作を可能に することを何と呼ぶか。
- 令和6年度 CBT基本情報技術者 科目B 問1次のプログラム中の に入れる正しい答えを,解答群の中から選べ。 関数 maximum は,異なる三つの整数を引数で受け取り,そのうちの最大値を返す。 〔プログラム〕 ○整数型:maximum(整数型:x,整数型:y,整数型:z) if ( ) return x elseif (y…
- 令和1年度 秋期基本情報技術者 午前 問8A, C, K, S, T の順に文字が入力される。スタックを利用して, S, T, A, C, K という順に文字を出力するために、最小限必要となるスタックは何個か。ここで、どのスタックにおいてもポップ操作が実行されたときには必ず文字を出力する。また、スタック間の文字の移動は行…
- 2018年度 秋期基本情報技術者 午前 問2次に示す手順は、列中の少なくとも一つは1であるビット列が与えられたとき、最も右にある1を残し、他のビットを全て0にするアルゴリズムである。例えば、00101000が与えられたとき,00001000が求まる。aに入る論理演算はどれか。 手順1 与えられたビット列Aを符号なしの2進数…
- 2017年度 秋期基本情報技術者 午前 問5A, B, C, D の順に到着するデータに対して、一つのスタックだけを用いて出力可能なデータ列はどれか。
基本情報技術者 の学習ガイド
基本情報 科目B 木構造(二分木)のトレース練習|深さ優先と幅優先で全ノードをたどる
科目Bの頻出データ構造「木構造(二分木)」を、クラス・左右2本の参照・未定義の記法でトレース。深さ優先(行きがけ・通りがけ・帰りがけ)と幅優先(レベル順)の4つの巡回順を、小さな木で1ノードずつ手で追って攻略します。連結リスト・再帰・キューの集大成です。
基本情報 科目B 連結リスト(単方向リスト)のトレース練習|参照を1本ずつ付け替える
科目Bの頻出データ構造「連結リスト(単方向リスト)」を、クラス・メンバ変数(.)・参照・未定義の記法でトレース。先頭への追加・末尾までの走査・途中への挿入を、参照の付け替えを1本ずつ図と表で追って攻略します。配列との違い、付け替えの順序という最大の落とし穴を実演します。
基本情報 科目B スタックとキューのトレース練習|LIFOとFIFOを操作表で1つずつ追う
科目Bの頻出データ構造「スタック(後入れ先出し・LIFO)」と「キュー(先入れ先出し・FIFO)」を、プッシュ/ポップ・エンキュー/デキューの操作を表に書いて1つずつ追うトレースで攻略。同じ入力でも取り出す順番が逆になる理由、頂点・先頭・末尾ポインタの動き、つまずきを具体例で実演します。
基本情報技術者試験を取る意味はあるか|FEのメリットと「意味ない」と言われる理由を整理
基本情報技術者試験(FE)は「意味ない」と言われることがある資格です。取得メリットと「役に立たない」と言われる理由を、就職・実務・上位試験への接続の3観点で整理し、誰に向くのかを正直に解説します。