院試hub

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

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

全4問。情報1問・電磁気学・回路1問。テーマタグは2件(正規表現・形式言語・オートマトン理論)。2025年度と共通のテーマは正規表現・形式言語。

最終更新:

収録3年度分の解答PDF:東京大学 情報理工学系研究科 コンピュータ科学専攻 専門科目(コンピュータ科学)(¥2,880・紙面見本あり)

このページで公開
解説4問と大問1問の途中式・最終答(全4問)
解答PDFに収録
途中式と最終答(最終答つき4問)
問題本文
非収録

東大 専門科目(コンピュータ科学) 2026年度 院試 過去問の出題内容(全4問)

この4問の分野は情報1問・電磁気学・回路1問です。

大問分野主題解説の小見出し最終答
第1問情報形式言語とオートマトン削除操作の見方 / 正規表現の作り方あり
第2問—ページングとTLBページテーブルサイズの基本 / FIFOの落とし穴あり
第3問電磁気学・回路パイプラインと論理回路パイプライン時間の分解 / ゲート数制限への対応あり
第4問—有限差分と対数時間探索有限差分の係数 / 最大値探索の見方あり

2026年度の出題テーマと、同じテーマを出した他大学・他年度

この年度は1問に2テーマが出ています。

前年度(2025年度)との違い

大問数
2025年度 4問 → 2026年度 4問
両年度に出たテーマ
正規表現・形式言語
2026年度で新しく出たテーマ
オートマトン理論
2025年度のページを見る

第1問 — 形式言語とオートマトン

削除操作の見方

⊙\odot は連続部分文字列の削除ではなく,部分列の削除である。 したがって ababa⊙abababa\odot ab では,1文字目の aa と4文字目の bb を 削除する場合も考える必要がある。この点を落とすと(1)の列挙で漏れが出る。

正規表現の作り方

(ab)∗(ab)^* では aa は各ブロックの先頭に1つずつ現れる。 2つの aa を消すと,それぞれのブロックは bb だけになる。 その前,間,後ろには通常の abab ブロックが任意個残るため, (ab)∗b(ab)∗b(ab)∗(ab)^*b(ab)^*b(ab)^* という形が自然に出る。

オートマトン構成の核心

残す文字は入力として読む。削除する文字は入力には現れないので ε\varepsilon 遷移で処理する。この2種類の遷移を同じ A1A_1 上で動かすことで, 「残した語」と「削除した語」を合わせたものが L1L_1 に属するかを確認できる。 文脈自由の場合も同じ発想で,削除列を有限オートマトンではなく プッシュダウンオートマトンに読ませればよい。

解答

  1. まず,各語から指定された部分列を削除した結果を列挙する。 ababa⊙ab={aba, baa},ababa⊙bb={aaa},abb⊙ab={b},abb⊙bb={a}. \begin{aligned} ababa\odot ab&=\{aba,\,baa\},\\ ababa\odot bb&=\{aaa\},\\ abb\odot ab&=\{b\},\\ abb\odot bb&=\{a\}. \end{aligned} したがって和集合を取れば {ababa,abb}⊖{ab,bb}={aba, baa, aaa, b, a} \{ababa,abb\}\ominus\{ab,bb\} =\{aba,\,baa,\,aaa,\,b,\,a\} である。
  2. (ab)n(ab)^n から部分列 aaaa を削除するには,異なる2つのブロックの aa を1つずつ選ぶ必要がある。削除されずに残る語は,削除前のブロック, 2つの削除位置の間のブロック,削除後のブロックの3部分に分けて (ab)p b (ab)q b (ab)r(p,q,r≥0) (ab)^p\,b\,(ab)^q\,b\,(ab)^r \qquad (p,q,r\ge 0) と書ける。逆にこの形の語は,(ab)p+q+r+2(ab)^{p+q+r+2} のうち (p+1)(p+1) 番目と (p+q+2)(p+q+2) 番目の aa を削除して得られる。 よって正規表現は (ab)∗b(ab)∗b(ab)∗ (ab)^*b(ab)^*b(ab)^* である。
  3. A1=(Q1,Σ,δ1,q1,F1)A_1=(Q_1,\Sigma,\delta_1,q_1,F_1), A2=(Q2,Σ,δ2,q2,F2)A_2=(Q_2,\Sigma,\delta_2,q_2,F_2) とする。 求める非決定性有限オートマトン BB を B=(Q1×Q2,Σ,Δ,(q1,q2),F1×F2) B=(Q_1\times Q_2,\Sigma,\Delta,(q_1,q_2),F_1\times F_2) で定める。状態 (p,r)(p,r) は「もとの語を読む A1A_1 の状態が pp, 削除した部分列を読む A2A_2 の状態が rr」である。 各 c∈Σc\in\Sigma について,遷移を次の2種類入れる。 (p,r)→c(δ1(p,c),r),(p,r)→ε(δ1(p,c),δ2(r,c)). (p,r)\xrightarrow{c}(\delta_1(p,c),r), \qquad (p,r)\xrightarrow{\varepsilon}(\delta_1(p,c),\delta_2(r,c)). 前者は入力として残す文字を読む遷移,後者は削除される文字を ε\varepsilon 遷移として処理する遷移である。入力語をすべて読んだ後, A1A_1 が L1L_1 を受理し,かつ削除した文字列を読んだ A2A_2 が L2L_2 を受理していれば受理する。
  4. 命題は真である。 L2L_2 を受理するプッシュダウンオートマトン P2P_2 を取り, 上の(3)と同じ考え方で,L1L_1 を受理する有限オートマトン A1A_1 と P2P_2 を積にしたプッシュダウンオートマトン PP を作る。 PP は,入力として出力語の文字を読むときは A1A_1 だけを進める。 一方,削除される文字を選ぶときは,入力を消費せずに A1A_1 をその文字で進め, 同時に P2P_2 にその文字を読ませる。 このようにすると,PP は v∈L1⊖L2 v\in L_1\ominus L_2 であること,すなわち,ある u∈L2u\in L_2 を vv の中に挿入して L1L_1 の語が得られることをちょうど非決定的に確認する。 プッシュダウンオートマトンで受理される言語は文脈自由言語であり, 同等な文脈自由文法へ変換できるので,L1⊖L2L_1\ominus L_2 は文脈自由言語である。

最終答

{ababa,abb}⊖{ab,bb}={aba,baa,aaa,b,a},(ab)∗⊖{aa}=(ab)∗b(ab)∗b(ab)∗. \{ababa,abb\}\ominus\{ab,bb\}=\{aba,baa,aaa,b,a\}, \qquad (ab)^*\ominus\{aa\}=(ab)^*b(ab)^*b(ab)^*. L1,L2L_1,L_2 が正規なら積オートマトンで L1⊖L2L_1\ominus L_2 を受理できる。 また,L1L_1 が正規,L2L_2 が文脈自由なら L1⊖L2L_1\ominus L_2 は文脈自由である。

第2問 — ページングとTLB

ページテーブルサイズの基本

仮想ページ番号はページ内オフセットを除いた上位ビットで決まる。 そのため,総ページ数は 2v/2p=2v−p2^v/2^p=2^{v-p} である。 単一レベルページテーブルでは,全仮想ページにPTEを1つずつ持つため, ページテーブルサイズは「総ページ数 ×\times PTEサイズ」で決まる。

FIFOの落とし穴

FIFOは最も古く入ったページを追い出すだけで,最近使われたかどうかを見ない。 そのため,フレーム数を3から4に増やしてもフォールト数が12から13に増える。 これはアルゴリズムの性質によるもので,計算ミスではない。

TLBとページフォールトの時間

TLB missでページフォールトがない場合は,TLB参照,ページテーブル参照, データ参照の3段階になる。ページフォールトがある場合は, ページテーブル参照でフォールトを検出してから処理を行い,その後にアクセスを再開する。 「処理後はTLB参照から再開する」と明記されているので,再開後のTLB参照と ページテーブル参照も時間に含める。

ページングとTLBの途中式・最終答をPDFで見る

第3問 — パイプラインと論理回路

パイプライン時間の分解

実行時間は「クロック周期 ×\times サイクル数」である。 クロック周期はステージ遅延の最大値で決まる。サイクル数は理想的には N+4N+4 だが,ロード直後利用の回数だけ1サイクルずつ増える。 この問題ではストール理由がそれだけに限定されているため,分岐や構造ハザードを 追加で考える必要はない。

ゲート数制限への対応

デコーダでは3入力ANDをそのまま作るとゲート数が増える。 exˉ1xˉ0=eˉ∨(x1∨x0)‾e\bar{x}_1\bar{x}_0=\overline{\bar{e}\lor(x_1\lor x_0)} のように, NANDでOR項を作り最後をNORで受ける形にすると,4出力を条件内で作れる。

ロードユースハザード

フォワーディングは「計算済みだがまだレジスタに書かれていない値」を早く渡す仕組みである。 しかしロード値はMAステージでメモリから戻るまで計算済みにならない。 この時刻の違いが,ロード命令だけ特別に1サイクル止まる理由である。

パイプラインと論理回路の途中式・最終答をPDFで見る

第4問 — 有限差分と対数時間探索

有限差分の係数

D(k)D^{(k)} は離散版の kk 階微分に対応する。 係数は二項係数で現れ,符号は (−1)k, (−1)k−1,…,1 (-1)^k,\ (-1)^{k-1},\ldots,1 と交互になる。したがって5階差分では −1, 5, −10, 10, −5, 1 -1,\ 5,\ -10,\ 10,\ -5,\ 1 が並び,ai+3a_{i+3} の係数は 1010 である。

最大値探索の見方

列そのものを見るより,隣接差分 ai+1−ai a_{i+1}-a_i を見る方がよい。差分が正なら上り坂,負なら下り坂である。 2階差分が負という条件は,この傾きが単調に下がることを意味するので, 山は高々1つになり,二分探索が使える。

一般の固定次数の場合

cc が入力サイズに依存しないことが重要である。 山や谷の個数は cc によってのみ抑えられるため,候補点の数は定数個で済む。 もし cc が nn とともに増えるなら,同じ議論では O(log⁡n)O(\log n) は保証できない。

有限差分と対数時間探索の途中式・最終答をPDFで見る

東大 専門科目(コンピュータ科学) 院試 過去問の収録3年度

  • 2026年度(このページ・全4問)

    形式言語とオートマトン / ページングとTLB / パイプラインと論理回路

  • 2025年度(全4問)

    形式言語とオートマトン / パイプラインとキャッシュ / スケジューリングとセマフォ

  • 2023年度(全4問)

    半分接頭辞と言語クラス / 集合分割の近似アルゴリズム / ページ置換