【大学院-筆記試験練習:线性代数和数据结构(3))】

大学院-筆記試験練習:线性代数和数据结构(3)

1-前言

为了升到自己目标的大学院,所作的努力和学习,这里是线性代数和数据结构部分。

2-线性代数-题目


3-线性代数-参考答案




4-数据结构-题目

【問題1】ハッシュ法(衝突・順序トラップ)

次のデータ列

S = {18, 7, 4, 15, 9, 12}

に対して,

ハッシュ関数

h(a) = a \\bmod 5

を用い,先頭の要素から順に ハッシュ表に格納する。

(1) 最初に 衝突(collision) が発生する要素の値を答えよ。

(2) 上記の格納操作において,衝突が一切発生しなかった場合の探索に要する最悪時間計算量を,オーダー表記で答えよ。

※ ただし,衝突解決法は考慮しないものとする。

・「先頭から順に」

・「最初の衝突」=2回目に同じ添字が出た瞬間


【問題2】ハッシュ法と計算量(概念理解)

ハッシュ法を用いたデータ探索に関して,以下の問いに答えよ。

(1) 衝突が発生していない場合における探索の最悪時間計算量を,理由とともに述べよ。

(2) すべての要素が同一のハッシュ値に写像された場合,探索の最悪時間計算量はどのようになるか。オーダー表記で答えよ。

・「平均」ではなく 最悪時間

・「理由とともに」=一文説明必須


【問題3】連結リスト × ハッシュ(構造理解)

チェイン法(連結リスト)を用いて衝突を解決するハッシュ表を考える。

ハッシュ表の各要素は 単方向連結リスト で構成されている。

このとき,

(1) 各リストの先頭要素のアドレスのみを保持している場合,

ある要素を探索する際の最悪時間計算量を,ハッシュ表の要素数 (n) を用いて答えよ。

(2) 上記の方法が,衝突が多発した場合に性能低下を引き起こす理由を簡潔に説明せよ。

・ハッシュ表サイズではなく データ数 n

・「簡潔に」= 2行以内想定


【問題4】実装理解(超高频)

ハッシュ法を用いたデータ管理において,

次の文が正しいかどうかを判断し,正しくない場合はその理由を述べよ。

「ハッシュ関数が適切であれば,

データの探索・挿入・削除はいずれも常に (O(1)) で実行できる。」
・「常に」

・削除も含まれている点


5-数据结构-参考答案

【問題1】ハッシュ法(衝突・順序)

(1) 最初に衝突が発生する要素

解答

最初に衝突が発生する要素の値は 15 である。

理由

先頭の要素から順に

18 → 7 → 4 → 15 → 9 → 12

をハッシュ関数 ( h(a)=a \bmod 5 ) により格納する。

h(18)=3,\\quad h(7)=2,\\quad h(4)=4,\\quad h(15)=0

ここで,すでに ( h(15)=0 ) に対応する添字には要素 18 が格納されているため,

15 を格納する際に最初の衝突が発生する。


(2) 衝突が発生しない場合の探索の最悪時間計算量

解答

探索に要する最悪時間計算量は (O(1)) である。

理由

衝突が発生しない場合,

ハッシュ関数により探索対象の要素が格納されている位置を直接計算できるため,

定数時間で探索が可能である。


【問題2】ハッシュ法と計算量

(1) 衝突が発生していない場合

解答

最悪時間計算量は (O(1)) である。

理由

衝突が存在しない場合,

探索対象の要素はハッシュ関数によって一意に配列の添字へ写像され,

配列の直接参照により定数時間で探索できるためである。


(2) すべての要素が同一のハッシュ値に写像された場合

解答

最悪時間計算量は (O(n)) である。

理由

すべての要素が同一の添字に格納されると,

探索は連結リストを先頭から順に走査することになり,

要素数 (n) に比例した時間が必要となるためである。


【問題3】連結リスト × ハッシュ(チェイン法)

(1) 探索の最悪時間計算量

解答

最悪時間計算量は (O(n)) である。

理由

衝突が集中した場合,

すべての要素が同一の連結リストに格納される可能性があり,

その場合は先頭から順に (n) 個の要素を探索する必要があるためである。


(2) 性能低下が起こる理由

解答

衝突が多発すると,各ハッシュ値に対応する連結リストが長くなり,

探索処理が配列アクセスではなく線形探索となるため,

探索性能が低下する。


【問題4】記述問題(「常に」の罠)

判断

誤りである。

理由

ハッシュ関数が適切であっても,

衝突が完全に回避されるとは限らず,

衝突が発生した場合には探索・挿入・削除において

線形時間 (O(n)) を要する可能性があるためである。


相关推荐
云边散步2 小时前
godot2D游戏教程系列二(4)
笔记·学习·游戏开发
jrlong2 小时前
DataWhale大模型基础与量化微调task4学习笔记(第 2 章:高级微调技术_RLHF 技术详解)
笔记·学习
Darkershadow3 小时前
蓝牙学习之Time Set
python·学习·蓝牙·ble·mesh
好奇龙猫3 小时前
【日语学习-日语知识点小记-日本語体系構造-JLPT-N2前期阶段-第一阶段(9):単語文法】
学习
AI浩3 小时前
约束模型下的目标检测置信学习
学习·目标检测·目标跟踪
m0_748229994 小时前
ThinkPHP快速入门:从零到实战
c语言·开发语言·数据库·学习
風清掦4 小时前
【江科大STM32学习笔记-04】0.96寸OLED显示屏
笔记·stm32·学习
胡西风_foxww4 小时前
ObsidianAI_学习一个陌生知识领域_建立学习路径和知识库框架_写一本书
人工智能·笔记·学习·知识库·obsidian·notebooklm·写一本书
Haooog4 小时前
AI应用代码生成平台
java·学习·大模型·langchain4j
非凡ghost4 小时前
ShareX(免费截图录屏软件)
windows·学习·软件需求