院試hub

千葉大学 院試 過去問 解答例

千葉大 融合理工学府 数学情報科学専攻 数学・情報数理学コース 専門科目(A0・A問題・B問題) 2023年度 院試 解答例・解説

千葉大学 融合理工学府 数学情報科学専攻 数学・情報数理学コース 専門科目(A0・A問題・B問題) 2023年度の院試 過去問について、設問ごとの解法方針と確認点を解説。全18問収録の解答・解説PDFと併用できます。問題本文は含みません。

最終更新:

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

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

1 — A0 整数の部分集合と有限補集合条件

方針

条件 (\ast) を「XcX^{c} が有限」と言い換えるのが鍵。一度この同値変形をすれば、(1)--(6) はすべて補集合の有限性とド・モルガン則で機械的に処理できる。

典型ミス

(2) と (6) で「無限集合だから (\ast) を満たすはず」と短絡するのは誤り。Z\mathbb{Z} を二つの無限集合(偶数・奇数)に分割できる事実を反例として提示する。 (4) で和と積を混同して「補集合の交わり」が有限になると勘違いしないこと。実際には (X1X2)c=X1cX2c(X_{1}\cap X_{2})^{c}=X_{1}^{c}\cup X_{2}^{c} を使う。

試験で書くべきポイント

冒頭に「(\ast) \Leftrightarrow XcX^{c} が有限集合」を補題として明記し、以降の各小問で根拠としてこの同値を引用する書き方が最短。 反例は具体的に偶数集合 2Z2\mathbb{Z} を挙げ、XcX^{c} が無限であることまで書き切ること。

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

2 — A1 ケイリー・ハミルトンと可換行列

方針

基底 {Akv}\{A^{k}v\} と companion 行列 CCAV=VCAV=VC の関係で結ばれることが核心。 これに気付けば (3) は両辺に VV を絡めるだけで自動的に XA=BXXA=BX が出る。

典型ミス

(2) で fBf_{B} の単射性を「行列式」などで議論しようとしないこと。第 1 列を見るのが最短。 (4) で「I,AI,A のスパン」を持ち出すとき、「AA がスカラーでない」ことを前提の {v,Av,}\{v,Av,\dots\} の独立性から示すのを忘れない。

試験で書くべきポイント

PB=PAP_{B}=P_{A} という仮定が (3) で本質的に効いていること(同じ companion 行列 CC に行きつく根拠)を明記すること。 (4) は「B=AB=A と取って (3) を適用」という構造を示せば、後は具体的な無限族 {sI+tA}\{sI+tA\} を提示して終わる。

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

3 — A2 一様連続性と関数列

方針

有界微分 \Rightarrow Lipschitz \Rightarrow 一様連続、という基本ルートを (1)(4) で繰り返す。 (2) は「端の極限 cc で逃げる + 中央のコンパクト区間で Heine--Cantor」の二段構え。 (4) は「M-test で一様収束」と「各項が一様連続」を組み合わせて (3) に帰着するのが定石。

典型ミス

(2) で δ=min(δ1,1)\delta=\min(\delta_{1},1) と置く意義(x<M, yM+1x<M,\ y\ge M+1 の場合を排除する)を書き落とさないこと。 (4) で supx1an(x)\sup_{x\ge 1}a_{n}(x) の評価点が x=1x=1 であることを示さずに「Mn=n(n1)2enM_{n}=n(n-1)^{2}e^{-n}」と書くと根拠不足になりやすい。φ(u)=(u1)2eu\varphi(u)=(u-1)^{2}e^{-u}u3u\ge 3 での単調性を経由するのが安全。

試験で書くべきポイント

(3) の ε/3\varepsilon/3 論法で「NN を一様収束から先に取り、δ\deltafNf_{N} の一様連続性から取る」順序を明示する。 (4) では「収束」と「一様連続」が独立な要請であることを意識し、両者を別々に証明したうえで (3) で結合する流れを示すと採点者に伝わる。

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

4 — A3 距離関数の連続性とハウスドルフ性

方針

(1) は ρ\rho が距離からくる量である以上、まず三角不等式を立てて下限を取るのが定石。11-Lipschitz が言えれば連続性も一様連続性も同時に従う。 (2) は「Hausdorff+コンパクト ⇒ 閉集合」という基本定理。各点ごとに分離してから有限部分被覆を取り、有限交叉で開近傍を作る論法を丁寧に書く。 (3) は与えられた位相が下方 UsU_{s} のみからなる「左半直線位相」であることを意識する。連続性は基底に関して逆像が開かを調べれば十分。

典型ミス

(1) で ρ(x)d(x,y)+ρ(y)\rho(x)\le d(x,y)+\rho(y) を片側だけ示し対称性を述べ忘れる答案が多い。x,yx,y を入れ替える一文を必ず添えること。 (3) で「gg も連続そう」と直感的に書くのは誤り。\lceil\cdot\rceil は不連続点で右連続的に「上に飛ぶ」ため、左半直線の逆像が左閉区間になり開でなくなる現象を反例で押さえる。

試験で書くべきポイント

(2) は「xAx\notin A を任意に」「各 aAa\in A で分離」「AA のコンパクト性で有限被覆」「有限交叉で開近傍」の 44 ステップを段落として明示する。 (3) は s=2s=2 のような具体値で反例を作り、(,1](-\infty,1]U\mathcal{U} に属さないことを明記すれば失点を避けられる。

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

5 — A4 指数分布・複合ポアソン分布

方針

(1) は「指数分布の独立和はガンマ分布」という基本事実。畳み込み積分による帰納法、または特性関数 φX(t)=λ/(λit)\varphi_{X}(t)=\lambda/(\lambda-it) を用いて φYn=(λ/(λit))n\varphi_{Y_{n}}=(\lambda/(\lambda-it))^{n} と書くことでも示せる。 (2) は複合ポアソン分布 (compound Poisson) の典型問題。条件付き期待値を一旦求めてから全期待値の公式 E(YW)=E[E(YWW)]E(Y_{W})=E[E(Y_{W}\mid W)] で外す。

典型ミス

(1) で正規化定数 (n1)!(n-1)! を間違えやすい。0yn1eλydy=(n1)!/λn\int_{0}^{\infty} y^{n-1}e^{-\lambda y}dy=(n-1)!/\lambda^{n} を確認して係数を合わせること。 (2) で W=0W=0 のケース処理を忘れて E(YWW=k)=k/λE(Y_{W}\mid W=k)=k/\lambdak=0k=0 でも適用しているか確かめる。0/λ=00/\lambda=0W=0W=0 のときの YW=0Y_{W}=0 と整合するため、結果として一括で書ける。

試験で書くべきポイント

(1) は密度関数を「y>0y>0y0y\le 0 で場合分け」して書くと採点されやすい。 (2) は E(YW)=E(W)/λ=μ/λE(Y_{W})=E(W)/\lambda=\mu/\lambda と最後に「ポアソン分布の平均は μ\mu」を明記する。Wald の等式の特殊例である点に触れると上位答案。

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

6 — A5 Pascal キュー実装と循環バッファ

方針

(1) は tail, head, count の三つを毎ステップ表で追うのが確実。特に 1111 回目の enqueue(=4 ブロック目の i=1i=1)で「tail>size\texttt{tail}>\texttt{size} の前方移動」が一度だけ起こる点を見落とさない。 (2) は配列を「環状」とみなして剰余で添字を回す古典的なリングバッファの実装。11 始まり配列なら (idxmodsize)+1(\texttt{idx}\bmod\texttt{size})+1 という式が定型句。

典型ミス

(1) で前方移動が起きるタイミングを誤り、最後の 55 個を elements[6..10]\texttt{elements}[6..10] に上書きしてしまう答案が多い。実際は移動後 tail=6\texttt{tail}=6 になるので最初の追加は elements[6]\texttt{elements}[6]、その値は 99。最終配列は (6,7,8,9,10,9,8,7,6,5)(6,7,8,9,10,9,8,7,6,5)。 (2) で「head=tail\texttt{head}=\texttt{tail} を空とする」設計にすると満杯時に空と区別できなくなる。count\texttt{count} を併用するか、配列を 11 スロット余分に取って区別する必要がある。本問は元実装に count\texttt{count} があるのでそれを再利用するのが最短。

試験で書くべきポイント

(1) は出力の 1515 個の整数と末尾 TRUE\mathtt{TRUE} を明示する。途中状態を表で書くと部分点が拾える。 (2) は tail mod size+1\texttt{tail mod size}+\texttt{1} の形で添字が 1..size1..\texttt{size} を巡回することを明記し、満杯判定が countsize\texttt{count}\ge\texttt{size}、空判定が count0\texttt{count}\le 0 で元の関数返り値系列と一致する旨を一文添える。

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

7 — B1 内部自己同型と Inn(G)・Aut(G)

方針

基本道具は二つ。第一に共役写像の合成則 φgφh=φgh\varphi_{g}\varphi_{h}=\varphi_{gh}、第二に Φ:GInn(G)\Phi:G\to\mathrm{Inn}(G) の核が中心で Inn(G)G/Z(G)\mathrm{Inn}(G)\cong G/Z(G)(自然準同型定理)。 これだけで (1)(3)(4) は処理でき、(2) は ψ\psi が準同型であることから直接に従う。

典型ミス

(3) で「InnAut\mathrm{Inn}\subseteq\mathrm{Aut} かつ位数が等しい」を述べずに同型と結論しないこと。位数の上界 Aut(S3)6|\mathrm{Aut}(S_{3})|\le 6(互換 3 個の置換で決まる)の議論を必ず入れる。 (4) では Aut(G)\mathrm{Aut}(G) を「3 個の非単位元の置換」と述べるだけでなく、F2\mathbb{F}_{2} ベクトル空間と見て GL2(F2)\mathrm{GL}_{2}(\mathbb{F}_{2}) と書くと標準的。

試験で書くべきポイント

Inn(G)G/Z(G)\mathrm{Inn}(G)\cong G/Z(G) の同型は院試で繰り返し使う基本事実。冒頭で証明込みで提示しておくと、(3)(4) の処理が一気に短くなる。 正規性の式 ψφgψ1=φψ(g)\psi\varphi_{g}\psi^{-1}=\varphi_{\psi(g)} は (1) と (2) の双方で使う中心的等式である。

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

8 — B2 多項式環からの環準同型

方針

Z[x]\mathbb{Z}[x] からの環準同型は標数で場合分けする。標数 p>0p>0 なら Fp[x]\mathbb{F}_{p}[x](PID)に落とす、標数 00 なら Im(f)=Z[α]\mathrm{Im}(f)=\mathbb{Z}[\alpha] として Z\mathbb{Z} 加群構造から「22 が可逆になり得ない」を出す。 (4) は (2) と (3) の合わせ技:標数を素数に絞ったうえで極大イデアルを既約多項式で具体的に書く。

典型ミス

(2) で「Ker\mathrm{Ker} は素イデアル」と書いて Ker(f)=(p)\mathrm{Ker}(f)=(p)(q(x))(q(x)) と早合点しないこと。pKer(f)p\in\mathrm{Ker}(f) を出してから Fp[x]\mathbb{F}_{p}[x] で割って初めて (p,q(x))(p,q(x)) という二元生成が見える。 (3) で Im(f)\mathrm{Im}(f) を「Q\mathbb{Q} を含むはず」と誤認しないこと。実際は Z[α]\mathbb{Z}[\alpha] であって Q\mathbb{Q} は含まない。

試験で書くべきポイント

PID Fp[x]\mathbb{F}_{p}[x] のイデアルが単項生成であることが (2) の核心。 (4) では「体になるための核は極大」「Fp[x]\mathbb{F}_{p}[x] の極大イデアル == 既約多項式生成」「Fp\mathbb{F}_{p} の有限次拡大 == 有限体」の 3 段階を明示すると論理が見やすい。

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

9 — B3 単位ベクトル組の多様体

方針

「等式で切り出された集合が多様体か」は正則値定理に帰着するのが王道。Jacobi 行列の階数が定数(最大)であることを点ごとに確認する。 向きづけ可能性とベクトル場の存在は、VVSO(3)\mathrm{SO}(3) と微分同相という強い構造で一気に処理できる。リー群の平行化可能性は院試レベルで標準事実。

典型ミス

(1) で Jacobi 行列の階数を「3 行が R6\mathbb{R}^{6} で独立」を示さずに済ませないこと。uvu\perp vu,v0u,v\ne 0 を明示的に使う場面である。 (3) で「u×vu\times v を加える」だけで終わらせず、Ψ\PsiCC^{\infty} 微分同相であることと、SO(3)\mathrm{SO}(3) の向きづけ可能性を分けて述べる。 (4) で「3 次元多様体には常に非零ベクトル場がある」と一般論で済ませない。リー群(平行化可能性)か、VV が連結コンパクト 3 次元向きづけ可能多様体(χ=0\chi=0)であることを根拠にする。

試験で書くべきポイント

VSO(3)V\cong\mathrm{SO}(3) という同一視を立てた瞬間、(2)(3)(4) はすべてリー群の一般論に帰着できる。冒頭でこの同型を予告しておくと答案が一段見やすくなる。 正則値の検証は「00 でないベクトルでの線形独立性」という具体計算で示すのが安全。

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

10 — B4 四角形の貼り合わせ商空間のホモロジー

方針

K2,K3K_2,K_3K1K_1 に貼る写像の向きを丁寧に追えば、XXYY は曲面(境界つき)の組み立てとして同定できる。K1K_1 を円板、KiK_i を 1-ハンドルとみなすハンドル分解の発想がカギ。Möbius か cylinder かは「両端の貼り付け向きが一致するか反転するか」だけで決まる。

典型ミス

向きの判定を絵だけで済ませて結論を逆にしないこと。K1\partial K_1 を反時計回りに測ると 3K1\partial_3 K_1 上は右から左に進む点を必ず確認する。 X~\widetilde X を求める際、Q\mathbb{Q} 係数なら Z/2\mathbb{Z}/2 のねじれが消えることに注意。H1(RP2;Z)=Z/2H_1(\mathbb{RP}^2;\mathbb{Z})=\mathbb{Z}/2 を「Q\mathbb{Q} でも残る」と書くのは誤り。

試験で書くべきポイント

(1)(2): XX はメビウス帯、X~RP2\widetilde X\cong\mathbb{RP}^2 を明記。境界の含意写像が中心円の 22 倍であることが X~=RP2\widetilde X=\mathbb{RP}^2 の根拠。 (3)(4): YY はクラインの壺マイナス開円板、Y~\widetilde Y\cong クラインの壺。Z/2\mathbb{Z}/2 係数では H2(K;Z/2)=Z/2H_2(\mathbb{K};\mathbb{Z}/2)=\mathbb{Z}/2 が出る点(Z\mathbb{Z} 係数では消える)が要所。

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

11 — B5 留数定理と Schwarz の補題

方針

(1) は典型的な留数計算。実積分 cosx/(x2+1)\int\cos x/(x^2+1)eix/(x2+1)e^{ix}/(x^2+1) を用いて上半平面で閉曲線積分し、Jordan の補題で円弧分を消す。被積分関数が偶関数なので最後に 1/21/2 を掛ける。 (2) は Schwarz の補題の標準的な証明。要は「f(0)=0f(0)=0 なら f(z)/zf(z)/z は正則」「最大値原理を半径 rr で取って r1r\to 1」の二段。

典型ミス

(1) 半円弧上の評価で Jordan の補題(0πeRsinθdθ0\int_0^\pi e^{-R\sin\theta}\,d\theta\to 0)に明確に言及せず「明らかに 0」と書くと減点。cosx/(x2+1)\cos x/(x^2+1) を直接半円積分しようとすると上半円弧で発散するので不可。 (2)(a) 「f(0)=0f(0)=0 なので f(z)/zf(z)/z は明らかに正則」だけでは不十分。Taylor 展開を書き、項別に zz で割れることを示すのが典型解答。 (2)(b) 最大値原理は「f/zf/z が正則」に対して適用するのであって、ff ではない点に注意。

試験で書くべきポイント

(1) 留数値 e1/(2i)e^{-1}/(2i)2πi2\pi i を掛けて π/e\pi/e、実部を取り偶関数性で 1/21/2、最終答 π/(2e)\pi/(2e) の流れを明示。 (2)(a) Taylor 展開の最初の項が a1za_1 z であること、(b) 最大値原理の適用域が {zr}\{|z|\le r\}、(c) r1r\to 1 の極限操作を順に書けば満点。

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

12 — B6 線形ODE系・Liouville の公式

方針

(1) は Liouville(Jacobi)の公式そのもの。ポイントは「行列式は各行について多重線形」「同じ行が 2 度現れる行列式は 0」の二点だけ。これを使えば微分が機械的に展開できる。 (2) は単独高階 ODE をベクトル系に直す手筈。コンパニオン行列の対角成分は最後の (n,n)(n,n) を除いてすべて 00 なので、トレースが最高階係数(の符号反転)に集中する点が肝。

典型ミス

(1) 行列式の微分公式を「det=tr(adj(Y)Y)\det'=\operatorname{tr}(\mathrm{adj}(Y)Y')」のような式で誤魔化さず、行ごとの分解 ri=aikrk\mathbf{r}_i'=\sum a_{ik}\mathbf{r}_k を代入する素朴な計算を書き切ること。 (2) コンパニオン行列を立てる際に符号と位置を誤りやすい。トレースに寄与するのは最後の (n,n)(n,n) 成分だけであることを必ず明記する。(α/x)dx=αlogx\int (-\alpha/x)\,dx=-\alpha\log x(β/x2)dx=β/x\int(-\beta/x^{2})\,dx=\beta/x の符号にも注意。

試験で書くべきポイント

(1) 多重線形性 + 同行 2 重で 0 の二段論法を行間なしに記述。 (2) zk=y(k1)z_k=y^{(k-1)} と置く宣言、コンパニオン行列の tr\operatorname{tr} 計算、Wronskian の定義式、(1) を引用しての ODE W=(trA)WW'=(\operatorname{tr}A)W、積分して W=cxαeβ/xW=c x^{-\alpha}e^{\beta/x}、の流れを順に書く。

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

13 — B7 測度論的積分・絶対連続性

方針

可積分関数の積分が「測度の小さい集合の上では小さくなる」という性質(積分の絶対連続性)を、Markov 型不等式と組み合わせて使うのが本問の骨子である。 分点 μ(En)1/2\mu(E_n)^{-1/2}μ(An)0\mu(A_n)\to 0μ(En)1/20\mu(E_n)^{1/2}\to 0 を両立させるためのバランス点である。

典型ミス

(2) で「μ(En)0\mu(E_n)\to 0 だから Enf0\int_{E_n} f\to 0」と直接結論してはいけない。 これが成り立つには可積分性が必要で、その本質的部分が積分の絶対連続性である。証明の中で fM=min(f,M)f_M=\min(f,M) で打ち切る議論を一行でも書いておくと安全。

試験で書くべきポイント

AnA_n の定義のところで「ff が可測ゆえ AnAA_n\in\mathcal{A}」を一行で済ませた上で、Markov の不等式を「fμ(En)1/2μ(An)\int f\ge \mu(E_n)^{-1/2}\mu(A_n)」と陽に書くこと。 分割 En=EnAn+EnAn\int_{E_n}=\int_{E_n\cap A_n}+\int_{E_n\setminus A_n}AnA_nAncA_n^{c} の役割(前者は値が大きい部分、後者は値が小さい部分)が対比的になるよう書くと採点者に伝わる。

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

14 — B8 強大数の法則と Sanov 型評価

方針

4 次モーメント法による強大数の法則の標準的証明である。鍵は (1) の組合せ計算(独立性で交差項が消える)、(2) の Markov の不等式(4 次版を使う、2 次では (3) が言えない)、(3) の Borel--Cantelli への帰着の三段。

典型ミス

(1) で (42)=6\binom{4}{2}=6 と「2 ペア」の項数を混同しないこと。展開には添字の順序付き 4 重和を使い、4 つの添字を 2 種類 (i,ji,j) に振り分ける順序の数を (42)\binom{4}{2} と数えるのが安全。 (3) で「4 次のモーメント有限なので大数の法則」と一行で済ませず、Borel--Cantelli を経由する論理を明示すること。 (4) で「pj=0p_j=0 のとき pjlogpj=0p_j\log p_j=0」の規約を一言添えると堅い。

試験で書くべきポイント

(2) は (1) を使うことを明記、(3) は (2) を使うことを明記し、(1)→(2)→(3) の論理ツリーが見えるよう書く。 (4) は RnR_nlog\log で線形化してから、Zn(j)/nZ_n(j)/n に (3)(の特別な場合)を適用するという翻訳を一段ずつ書くこと。最後の極限値が H(p)-H(p)(エントロピーの符号反転)であることに触れると深みが出る。

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

15 — B9 線形回帰と最小二乗推定の不偏性・BLUE

方針

線形回帰の三点セット(最小二乗推定の閉じた形・不偏性・Gauss--Markov による BLUE 性)の典型問題。標本分散 sx2>0s_x^{2}>0XXX^{\top}X の正則性を担保し、(1) の閉じた形は (2)(3) の前提となる。 (3) では「線形不偏」を Xa=e1X^{\top}a=e_1 と書き直すこと、そして aa^{\ast}ImX\operatorname{Im}X に、b=aab=a-a^{\ast}KerX=(ImX)\operatorname{Ker} X^{\top}=(\operatorname{Im}X)^{\perp} に属する直交分解が核心。

典型ミス

(1) で β^2\hat{\beta}_{2} の分母を xi2\sum x_i^{2} と書いてしまう誤り(正しくは中心化済みの (xixˉ)2\sum(x_i-\bar{x})^{2})が頻発する。n2sx2=n(xixˉ)2n^{2}s_x^{2}=n\sum(x_i-\bar{x})^{2} の関係を一度書いておくとミスを防げる。 (3) で「線形」と「不偏」のうち「不偏」だけ仮定して直交分解だけ書くと不十分。線形性 β~1=aY\tilde{\beta}_{1}=a^{\top}Y と不偏性 Xa=e1X^{\top}a=e_1 を最初に明示する。

試験で書くべきポイント

(2) は β^=(XX)1XY\hat{\beta}=(X^{\top}X)^{-1}X^{\top}Y を (1) で先に確立しておけば、わずか 2 行で書ける。 (3) は Var(aY)=σ2aa\mathrm{Var}(a^{\top}Y)=\sigma^{2}a^{\top}a を独立同分布・等分散 Cov(ε)=σ2In\mathrm{Cov}(\varepsilon)=\sigma^{2}I_n から導く一行を必ず入れる。直交分解 a2=a2+b2\|a\|^{2}=\|a^{\ast}\|^{2}+\|b\|^{2} の根拠(aImX, b(ImX)a^{\ast}\in\operatorname{Im}X,\ b\in (\operatorname{Im}X)^{\perp})を明示すれば、Gauss--Markov の証明として完成する。

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

16 — B10 原始根判定アルゴリズム

方針

(Zp)(\mathbb{Z}_p)^{*} が位数 p1p-1 の巡回群であるという事実から出発し、Lagrange の定理「部分群の位数は群の位数の約数」を介して原始根判定を「p1p-1 の極大真約数 (p1)/pi(p-1)/p_i」での冪のみに帰着させるのが本問の核。 全ての真約数を列挙する必要はなく、素因数 pip_i ごとの kk 個の冪計算で済む点が、素因数分解を入力として与える理由である。

典型ミス

(1) で逆向きを示すときに「ord(g)<p1\operatorname{ord}(g)<p-1 なら ord(g)(p1)/pi\operatorname{ord}(g)\mid (p-1)/p_i となる ii が存在する」の根拠を書き忘れる答案。 dp1d\mid p-1 かつ d<p1d<p-1 ならば (p1)/d>1(p-1)/d>1 は何らかの素因数 pip_i を持ち、そこから d(p1)/pid\mid (p-1)/p_i が出る、を一行入れる。 (2) で「p1p-1 の素因数分解は与えられている」を読み落とし、素因数分解そのものを行おうとして「効率良くは知られていない」で詰まる答案。

試験で書くべきポイント

(Zp)(\mathbb{Z}_p)^{*} の位数が p1p-1 であること、巡回群であること、Lagrange の定理、を明示する。 計算量評価では「p1p-1O(n)O(n) ビット」「反復二乗法は O(n)O(n) 回の乗算」「各乗算と剰余は O(n2)O(n^2) ビット演算」の 3 段を順序立てて書くと、多項式時間性の根拠が明快になる。 knk\le n2kpiei=p1<2n2^k\le \prod p_i^{e_i}=p-1<2^n から従う点も補足できる。

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

17 — B11 正則言語の閉性 (対称差・商・挿入)

方針

正則言語の閉性証明は「正則 \Leftrightarrow DFA/NFA で受理可能」を行き来して構成的に行うのが定石。 (1) はブール代数的閉性のみで済む。 (2) は L2L_2 の DFA の状態のうち「L1L_1 で到達可能なもの」を初期状態集合とする発想(左商の構成)。 (3) は「LL の DFA の上で、ある状態から到達可能な別状態への ε\varepsilon ジャンプを加える」ことが「任意の部分語を消し去る」ことに対応する、というアイデア。

典型ミス

(2) で L1L_1L2L_2 を直接結合して L1L2L_1L_2 のような構成にしてしまう答案。求めるものは右側の語 wwL2L_2 からプレフィックス vL1v\in L_1 を「除いた」もの、すなわち左商 L11L2L_1^{-1}L_2 であって、結合ではない。 (3) で LL のオートマトンを書き換える際に、各遷移を ε\varepsilon に「置き換える」と LL ごと壊れてしまう。元の遷移は残したまま、到達可能性に基づく ε\varepsilon 遷移を「追加」するのが正しい。

試験で書くべきポイント

(1) は集合等式と 3 つの閉性を 1 行ずつ書けば十分。 (2) は積オートマトンで SS を決定する有限性、(3) は到達可能性 R(q)R(q) の有限計算可能性、を一言ずつ添えると正則性の議論が締まる。 ε\varepsilon-NFA を許せば DFA に等価変換できる事実を最後に明記すると満点答案になりやすい。

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

18 — B12 OCaml/Scheme で index・indices・indices2

方針

3 問とも「インデックスを引数に持つ補助関数 aux を作ってリストを 1 度だけ走査する」のが OCaml の定石パターン。 index は短絡で打ち切り、indices は条件付きで consindices2 は二重ループで対を生成、と三段階に難度が上がる。 indices2 で結果の順序が「辞書式昇順」と指定されている点を読み落とさず、外側・内側ともに前から進めて自然に並ぶ構成にすることが要。

典型ミス

(1) で見つからない場合に例外を投げてしまう答案。問題は 1-1 を返せと明記している。 (2) で List.filterList.mapi を組み合わせる実装。動くが「定義せよ」の趣旨に外れ、再帰の理解を見せられない。 (3) で外側と内側を逆にして outer (i+1) rest @ inner (i+1) rest と書くと ii の昇順が崩れて辞書式順にならない。連結の順序は inner … @ outer …(同じ ii の組を先、それから i+1i+1 以降)が正しい。 また indices2 (<) […]j>ij>i の制約を忘れて j=ij=ij<ij<i も含めてしまうミスもある。inner の初期値を i+1 とし、走査開始リストを rest(つまり xstl)にすることで構造的に j>ij>i を保証する。

試験で書くべきポイント

let rec aux i = function | [] -> … | x :: xs -> … という標準形を最初に書き、各小問で「i の更新」「[] 時の戻り値」「p の真偽による枝分かれ」の 3 点を書き分ければ採点者に伝わる。 (3) では「外側と内側のインデックスがそれぞれ何を表すか」「j の初期値が i+1」「連結の順序」を一文ずつ言及するとよい。 Scheme で書く場合は named let か内部 define で同じ構造を表現でき、condcons に置き換えれば素直に移植できる。

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

千葉大学 専門科目(A0・A問題・B問題) — 他の年度