院試hub

東京大学 院試 過去問 解答例

東大 情報理工学系研究科 コンピュータ科学専攻 専門科目(コンピュータ科学) 2024年度 院試 解答例・解説

東京大学 情報理工学系研究科 コンピュータ科学専攻 専門科目(コンピュータ科学) 2024年度の院試 過去問について、設問ごとの解法方針と確認点を解説。全4問収録の解答・解説PDFと併用できます。問題本文は含みません。

最終更新:

設問ごとの解法方針と確認点を公開しています。

続きの途中式・最終答は解答・解説PDFに収録しています。問題本文は含まれません。

1 — 形式言語と状態数

NFAとDFAの差

NFAでは「この位置が後ろから kk 番目だ」と非決定的に推測できるため, k+1k+1 個程度の状態で足りる。一方,DFAでは最後の kk 文字を区別できなければならない。 そのため全ての長さ kk の接尾辞に対応する 2k2^k 通りの情報が必要になる。

平方数位置の非正規性

正規言語は,十分後ろでは周期的な判定しかできない。平方数の間隔は 2k+12k+1 ずつ広がるので,固定周期では表せない。この性質を abab^* との共通部分に落とすと,非正規性が見えやすくなる。

続きの解答(途中式・最終答)はPDFに収録

2 — キャッシュとIPC

競合ミスが支配的になる理由

配列 AABB の開始アドレスは 0x10000x1000 だけ離れている。 これはキャッシュ容量256バイトの整数倍なので,ダイレクトマップでは同じインデックスに 対応する。したがって,AA を読んだ直後に BB へ書くと,同じ場所を取り合う。

IPC計算の注意点

IPCは命令数をサイクル数で割る。キャッシュヒット率だけからIPCは直接出ない。 `div' の4サイクル,メモリアクセスのヒット・ミス時のサイクル,ループ回数をすべて足し合わせる。

続きの解答(途中式・最終答)はPDFに収録

3 — 連結性と全域木

全域木の基本

探索で初めて頂点を発見した辺だけを集めると,すべての頂点に到達し,かつ各頂点は一度だけ 親を持つ。したがって閉路は生じず,全域木になる。

辺交換の考え方

木から1辺を抜くと必ず2成分に分かれる。そこに別の横断辺を1本戻すと,再び連結になり, 辺数も n1n-1 のままなので木である。全域木の交換性を使う典型的な議論である。

続きの解答(途中式・最終答)はPDFに収録

4 — 評価戦略と再帰

値呼びと名前呼びの違い

値呼びでは関数に入る前に引数を一度だけ評価する。名前呼びでは,引数式を本体に そのまま代入し,必要になった時点で評価する。そのため,同じ式が複数回現れると, 同じ計算が繰り返される。

呼び出し回数が増える理由

この関数では条件判定で xx を使い,さらに返り値側でも xx を含む式が現れる。 名前呼びではそれぞれの出現箇所で引数式が再評価されるため,呼び出し回数が指数的に増える。

続きの解答(途中式・最終答)はPDFに収録

東京大学 専門科目(コンピュータ科学) — 他の年度