東京大学 院試 過去問 解答例
東大 情報理工学系研究科 コンピュータ科学専攻 専門科目(コンピュータ科学) 2024年度 院試 解答例・解説
東京大学 情報理工学系研究科 コンピュータ科学専攻 専門科目(コンピュータ科学) 2024年度の院試 過去問について、設問ごとの解法方針と確認点を解説。全4問収録の解答・解説PDFと併用できます。問題本文は含みません。
最終更新:
設問ごとの解法方針と確認点を公開しています。
続きの途中式・最終答は解答・解説PDFに収録しています。問題本文は含まれません。
第1問 — 形式言語と状態数
NFAとDFAの差
NFAでは「この位置が後ろから 番目だ」と非決定的に推測できるため, 個程度の状態で足りる。一方,DFAでは最後の 文字を区別できなければならない。 そのため全ての長さ の接尾辞に対応する 通りの情報が必要になる。
平方数位置の非正規性
正規言語は,十分後ろでは周期的な判定しかできない。平方数の間隔は ずつ広がるので,固定周期では表せない。この性質を との共通部分に落とすと,非正規性が見えやすくなる。
第2問 — キャッシュとIPC
競合ミスが支配的になる理由
配列 と の開始アドレスは だけ離れている。 これはキャッシュ容量256バイトの整数倍なので,ダイレクトマップでは同じインデックスに 対応する。したがって, を読んだ直後に へ書くと,同じ場所を取り合う。
IPC計算の注意点
IPCは命令数をサイクル数で割る。キャッシュヒット率だけからIPCは直接出ない。 `div' の4サイクル,メモリアクセスのヒット・ミス時のサイクル,ループ回数をすべて足し合わせる。
第3問 — 連結性と全域木
全域木の基本
探索で初めて頂点を発見した辺だけを集めると,すべての頂点に到達し,かつ各頂点は一度だけ 親を持つ。したがって閉路は生じず,全域木になる。
辺交換の考え方
木から1辺を抜くと必ず2成分に分かれる。そこに別の横断辺を1本戻すと,再び連結になり, 辺数も のままなので木である。全域木の交換性を使う典型的な議論である。
第4問 — 評価戦略と再帰
値呼びと名前呼びの違い
値呼びでは関数に入る前に引数を一度だけ評価する。名前呼びでは,引数式を本体に そのまま代入し,必要になった時点で評価する。そのため,同じ式が複数回現れると, 同じ計算が繰り返される。
呼び出し回数が増える理由
この関数では条件判定で を使い,さらに返り値側でも を含む式が現れる。 名前呼びではそれぞれの出現箇所で引数式が再評価されるため,呼び出し回数が指数的に増える。