令和 4 年度

大学院博士 (前期) 課程入学者選抜学力試験

A 日程
情報アーキテクチャ・高度 ICT 領域

専 門 科 目［90 分］
注 意 事 項

1．試験開始の合図があるまで，この問題冊子を開かないでください．
2．出題科目およびページは，下表のとおりです．問題ごとに配点が記されています．
出 題 科 目

ペ ー ジ

問題数

基

礎

数

学

1

2問

情

報

数

学

2

1問

アルゴリズムとデータ構造

4〜 6

1問

デ ー タ ベ ー ス 工 学

7

1問

注

意

左の 4 科目のうちから 3 科
目を選択し，解答してくだ
さい．

3．解答冊子の表紙の所定欄に氏名と受験番号をはっきりと記入してください．さらに，選択した科目名の選択欄に○印を記入してください．○印のついた 3 科目のみ採点します．

4．解答用紙は 4 科目分がそれぞれ綴じてあります．解答に用いなかった解答用紙も含
め，すべての解答用紙の所定欄に受験番号をはっきりと記入してください．

5．解答用紙には，科目名，問題番号（I，II など），問いの番号（問 1 など）が記入されているので，選択する科目の解答用紙を用いてください．

6．計算／下書き用紙 3 枚が解答用紙と一緒にあります．
7．試験中に問題冊子の印刷不明瞭，ページの落丁・乱丁および解答用紙の汚れ等に気がついた場合は，静かに手を挙げて監督員に知らせてください．

8．試験終了後，監督員の指示に従って，解答冊子の表紙と 4 科目分の解答用紙を袋に入れてください．4 科目分の解答用紙が入っていない場合，入っていない科目の点数
は 0 点となります．

9．問題冊子と計算／下書き用紙は持ち帰ってください．

基 礎 数 学

I 行列




 1


A=
 1


1
0

a 

−1 


a −1 −1に対し，線形写像 f : R3 → R3 を f (x) = Ax (x ∈ R3 ) により定める．ただし，aは実数とする．以下の問いに答えよ．（配点 25 点）
問 1 行列 A の階数を求めよ．
問 2 線形写像 f の核 Ker(f ) を求めよ．
問 3 線形写像 f の像 Im(f ) の基底を求めよ．

II 以下の問いに答えよ．（配点 25 点）
問 1 f (x) = sin x，g(x) = e−2x とする．以下の式をみたす 8 つの定数 ai および bi(i = 0, 1, 2, 3) をすべて求めよ．
f (x) = a0 + a1 x + a2 x2 + a3 x3 + o(x3 ) (x → 0)g(x) = b0 + b1 x + b2 x2 + b3 x3 + o(x3 ) (x → 0)
ただし，記号 o はランダウのスモールオーである．さらに，その結果を用いて
極限
(

lim

x→0

1
1
+ −2x
2 sin x
e
−1

)

を求めよ．
問 2 a は実数とする．広義積分∫ 1

xa log x dx が収束するような a の値の範囲を求

0め，そのときの広義積分の値を a を用いて表せ．

基礎数学の問題は，このページで終りである．
— 1 —情 報 数 学

I n は自然数とする．葉以外のすべての節点の分岐次数は 2，葉の数が n 個の順序根付
き木を Tn とする．さらに，相異なる Tn の総数を pn とする．このとき，p1 = p2 = 1,

p3 = 2 である．以下の問いに答えよ．（配点 50 点）
問 1 相異なる T4 をすべて示し，p4 を求めよ．
問 2 Tn の節点数と辺の数をそれぞれ n を用いて表せ．ただし，相異なる Tn の節
点数は等しいことを証明なしに用いてよい．
問 3 Tn のすべての葉の深さが m となるとき，n を m を用いて表せ．ただし，mは 0 以上の整数とする．
問 4 n は 2 以上とする．Tn は，Tn の深さ 1 の節点を根とする２つの部分木 Tn−kと Tk からなる．ただし，k は n − 1 以下の自然数とする．このことを利用し，pn を p1 , p2 , · · · , pn−1 を用いて表せ．

情報数学の問題は，このページで終りである．
— 2 —(このページは白紙である)— 3 —アルゴリズムとデータ構造

I 次の文章を読み，以下の問いに答えよ．（配点 50 点）
二分法を用いて 5 の 3 乗根を求めるプログラムを作成することを考える．二分法
は，数値関数 f (x) についての方程式 f (x) = 0 の数値解を求めるアルゴリズムである．解が一つだけ存在し得る x の区間を初期値として与え，その区間内で f (x) が単調減少または単調増加する場合に，区間を更新する以下の (i) から (iv) の処理を繰り返すことで数値解を求める．
（i） ステップ n における x の区間を (an , bn ) として，区間の中点 x = (an + bn )/2 を求める．
（ii） 区間の中点における f (x) を計算する．
（iii） 区間の中点における f (x) の値の絶対値が十分に小さい場合，区間の中点 x =(an + bn )/2 を数値解として繰り返しを終了する．
（iv） 区間の中点における f (x) の値が十分に小さくない場合は，区間の中点における f (x) の値に応じて，ステップ n + 1 における方程式 f (x) = 0 の解が存在し得る x の区間 (an+1 , bn+1 ) を求める．

5 の 3 乗根を求めるため，f (x) = x3 − 5 として f (x) = 0 の数値解を求める二分法
プログラムを C 言語で作成する．プログラム 1 に，上述の (i) から (iv) の区間更新
処理を再帰的に行う C 言語の関数 calcNextRange を示す．プログラム 1 では，区間を表す構造体 Range と，数値関数 f (x) に対応する C 言語の関数 f も定義している．なお，終了判定で使用している関数 fabs は絶対値を求めるライブラリ関数で
ある．

— 4 —

プログラム 1# include < stdio .h ># include < math .h ># define EPSILON 1e -10
double f ( double x ){return x * x * x - 5;}
typedef struct{ /* a <= b とすること */double a ;/* 区間下限 */double b ;/* 区間上限 */} Range ;void calcNextRange ( Range * range ){double mid_x ;/* 中点の x 座標 */double mid_fx ;/* 中点の x 座標における f(x) */mid_x =
(1)
mid_fx =(2)/* 終了判定 */if ( fabs ( mid_fx ) < EPSILON ) {range - > a = mid_x ;range - > b = mid_x ;(A)return ;}(B)/* 区間の更新 */if ( mid_fx(3)0) {range - > a = mid_x ;}if ( mid_fx(4)0) {range - > b = mid_x ;}(C)return ;}— 5 —問 1 プログラム 1 の空欄 (1)，(2) は，それぞれ区間更新処理 (i)，(ii) を行っている．空欄 (1)，(2) に入るステートメントをそれぞれ答えよ．
問 2 プログラム 1 の空欄 (3)，(4) が含まれる if 文は，区間更新処理 (iv) に関する条件判定を行っている．空欄 (3)，(4) に入る不等号（「<」または「>」）をそれぞれ答えよ．
問 3 プログラム 2 に示す関数 main をプログラム 1 の下に追加し，二分法で 5 の 3乗根を求める C 言語プログラムを動作させるためには，関数 calcNextRange から関数 calcNextRange を再帰的に呼び出す必要がある．関数 calcNextRangeの再帰的な呼び出しは空欄 (A)，(B)，(C) のいずれで行えばよいか．空欄の記
号とともに，空欄に入れるステートメントを答えよ．
プログラム 2

int main ( void ){Range range ;range . a = 0;
range . b = 5;
calcNextRange (& range );printf ( " x =% f \ n " , range . a );return 0;}

問 4 完成したプログラムを改変して，以下の方程式の数値解を求めたい．

x−

1
=1
x

(x > 0)(1)

このためには，プログラム 1 で示した関数 f をどのように変更したらよいか．
変更後の関数 f を答えよ．

アルゴリズムとデータ構造の問題は，このページで終りである．
— 6 —データベース工学

I 以下の問いに答えよ．（配点 50 点）
問 1 大学の学生課では，学生が所属するサークルの情報をリレーショナルデータ
ベースで管理している．テーブル名 ([主キーとした項目 1], 項目 2, ...) の形式で表記された以下のテーブルに情報が格納されている．
学生 ([学籍番号], 氏名), サークル ([サークル番号], サークル名, 予算額),
所属 ([学籍番号, サークル番号], 役職)

以下の (1) から (5) に示す問い合わせを実現する SQL 文を答えよ．例えば，学生全員の氏名を出力するには，SQL 文を「select 氏名 from 学生 」と記述する．
（1） 登録された全ての「サークル名」（2） 役職が「部長」である学生の学籍番号と氏名（3） 所属するサークル名が「テニス部」である学生の学籍番号と氏名（4） 二つ以上のサークルに所属する学生の人数（5） 誰も所属していないのに予算が与えられているサークルの「サークル名」
問 2 専有ロックと共有ロックの定義を示せ．次に，以下の文の真偽をその定義を用いて理由とともに答えよ．
「あるトランザクションが専有ロックを確保しているデータに対して，別のト
ランザクションが共有ロックを得ることは可能である」
問 3 古典的なトランザクション処理におけるロールバックについて説明せよ．次に，以下の文の真偽をその説明を用いて理由とともに答えよ．
「ロールバック処理により回復されるのは ACID 特性のうち独立性 (Isolation)
である」

データベース工学の問題は，このページで終りである．
— 7 —令和 4 年度

大学院博士 (前期) 課程入学者選抜学力試験

A 日程
メディアデザイン領域

専 門 科 目［90 分］
注 意 事 項1． 試験開始の合図があるまで，この問題冊子を開かないでください．
2． 出題科目およびページは，下表のとおりです．問題ごとに配点が記されています．
出 題 科 目
情

報

認

知

デ

ザ

ペ ー ジ

問題数

イ

ン

1

1問

理

学

2

1問

ヒューマンインタフェース

3

1問

アルゴリズムとデータ構造

4〜 6

1問

心

注

意

左の 4 科目のうちから 3 科
目を選択し，解答してくだ
さい．

3． 解答冊子の表紙の所定欄に氏名と受験番号をはっきりと記入してください．さらに，選択した科目名の選択欄に○印を記入してください．○印のついた 3 科目のみ採点します．

4． 解答用紙は 4 科目分がそれぞれ綴じてあります．解答に用いなかった解答用紙も含め，すべての解答用紙の所定欄に受験番号をはっきりと記入してください．

5． 解答用紙には，科目名，問題番号（I，II など），問いの番号（問 1 など）が記入されているので，選択する科目の解答用紙を用いてください．

6． 計算／下書き用紙 4 枚と下書き用原稿用紙 1 枚が解答用紙と一緒にあります．
7． 試験中に問題冊子の印刷不明瞭，ページの落丁・乱丁および解答用紙の汚れ等に気がついた場合は，静かに手を挙げて監督員に知らせてください．

8． 試験終了後，監督員の指示に従って，解答冊子の表紙と 4 科目分の解答用紙を袋に入れてください．4 科目分の解答用紙が入っていない場合，入っていない科目の点
数は 0 点となります．

9． 問題冊子と計算／下書き用紙，下書き用原稿用紙は持ち帰ってください．

情報デザインI 次の文章を読み，以下の問いに答えよ.（配点 50 点）
図 1 の立体アは，1 辺の寸法が a の立方体から立体イを切り取ったものである．

a

a

a
図1

立体ア

問 1 立体イを，形状の特徴がよくわかる向きで机上に置いた状態を想定し，陰影をつけて美しく描写せよ．ただし，立体イの配置，視点の位置，光線の方向は自由に想定してよい．なお，解答用紙にはフリーハンドで描写すること．

情報デザインの問題は，このページで終りである．
— 1 —認知心理学I 以下の図 1 は，アトキンソン-シフリン理論と呼ばれる古典的な「記憶の３段階処理モデル」である．このモデルにおけるヒトの記憶のメカニズムについて，以下の問いに答えよ．（配点 50 点）

図1

問 1 短期記憶において「リハーサル」という活動を妨害すると，情報が失われることが知られている．これを実験により確かめるためにはどうすればよいか，
簡潔に説明せよ．
問 2 短期記憶にある情報を長期記憶に転送するにあたり，「処理の深さ」が影響を及ぼすことが知られている．浅い処理，深い処理とはどのようなものか，それぞれ具体例を挙げながら説明せよ．
問 3 このモデルは心理学の新しい知見を取り込んでアップデートされ，短期記憶の段階で生じる動的な処理に注目した「作業記憶（作動記憶，ワーキングメモリ）」という概念が示されている．この作業記憶において行われていることを一つ挙げ，具体例とともに説明せよ．
参考文献:

Atkinson, R. C., & Shiﬀrin, R. M. (1968). Human memory: A proposed system
and its control processes. In K. W. Spence & J. T. Spence (Eds.), The psychologyof learning and motivation, Vol. 2. New York: Academic Press.
Baddeley, A. (2000). The episodic buﬀer: A new component of working memory?
Trend in Cognitive Sciences, 4, 417-423.

認知心理学の問題は，このページで終りである．
— 2 —ヒューマンインタフェース

I ゲシュタルトとは，「形態」を意味するドイツ語である．人間の視覚に関する心理学から提案されたゲシュタルト法則には，以下のようなものがある．

• 近接の法則• 類同の法則• 閉合の法則• 良い連続の法則
図 1 に示すコーヒーマシンの操作部を見て，図中の A と B からユーザビリティが良いと考えられるものを選び，記号を書け．また，上記の４つのゲシュタルト法則のなかから自由に 2 種類の法則を選び，それらの法則に基づいて，良い理由をそれ
ぞれ 100 文字以内で記述せよ．（配点 50 点）

A

B
図1

ヒューマンインタフェースの問題は，このページで終りである．
— 3 —アルゴリズムとデータ構造

I 次の文章を読み，以下の問いに答えよ．（配点 50 点）
二分法を用いて 5 の 3 乗根を求めるプログラムを作成することを考える．二分法
は，数値関数 f (x) についての方程式 f (x) = 0 の数値解を求めるアルゴリズムである．解が一つだけ存在し得る x の区間を初期値として与え，その区間内で f (x) が単調減少または単調増加する場合に，区間を更新する以下の (i) から (iv) の処理を繰り返すことで数値解を求める．
（i） ステップ n における x の区間を (an , bn ) として，区間の中点 x = (an + bn )/2 を求める．
（ii） 区間の中点における f (x) を計算する．
（iii） 区間の中点における f (x) の値の絶対値が十分に小さい場合，区間の中点 x =(an + bn )/2 を数値解として繰り返しを終了する．
（iv） 区間の中点における f (x) の値が十分に小さくない場合は，区間の中点における f (x) の値に応じて，ステップ n + 1 における方程式 f (x) = 0 の解が存在し得る x の区間 (an+1 , bn+1 ) を求める．

5 の 3 乗根を求めるため，f (x) = x3 − 5 として f (x) = 0 の数値解を求める二分法
プログラムを C 言語で作成する．プログラム 1 に，上述の (i) から (iv) の区間更新
処理を再帰的に行う C 言語の関数 calcNextRange を示す．プログラム 1 では，区間を表す構造体 Range と，数値関数 f (x) に対応する C 言語の関数 f も定義している．なお，終了判定で使用している関数 fabs は絶対値を求めるライブラリ関数で
ある．

— 4 —

プログラム 1# include < stdio .h ># include < math .h ># define EPSILON 1e -10
double f ( double x ){return x * x * x - 5;}
typedef struct{ /* a <= b とすること */double a ;/* 区間下限 */double b ;/* 区間上限 */} Range ;void calcNextRange ( Range * range ){double mid_x ;/* 中点の x 座標 */double mid_fx ;/* 中点の x 座標における f(x) */mid_x =
(1)
mid_fx =(2)/* 終了判定 */if ( fabs ( mid_fx ) < EPSILON ) {range - > a = mid_x ;range - > b = mid_x ;(A)return ;}(B)/* 区間の更新 */if ( mid_fx(3)0) {range - > a = mid_x ;}if ( mid_fx(4)0) {range - > b = mid_x ;}(C)return ;}— 5 —問 1 プログラム 1 の空欄 (1)，(2) は，それぞれ区間更新処理 (i)，(ii) を行っている．空欄 (1)，(2) に入るステートメントをそれぞれ答えよ．
問 2 プログラム 1 の空欄 (3)，(4) が含まれる if 文は，区間更新処理 (iv) に関する条件判定を行っている．空欄 (3)，(4) に入る不等号（「<」または「>」）をそれぞれ答えよ．
問 3 プログラム 2 に示す関数 main をプログラム 1 の下に追加し，二分法で 5 の 3乗根を求める C 言語プログラムを動作させるためには，関数 calcNextRange から関数 calcNextRange を再帰的に呼び出す必要がある．関数 calcNextRangeの再帰的な呼び出しは空欄 (A)，(B)，(C) のいずれで行えばよいか．空欄の記
号とともに，空欄に入れるステートメントを答えよ．
プログラム 2

int main ( void ){Range range ;range . a = 0;
range . b = 5;
calcNextRange (& range );printf ( " x =% f \ n " , range . a );return 0;}

問 4 完成したプログラムを改変して，以下の方程式の数値解を求めたい．

x−

1
=1
x

(x > 0)(1)

このためには，プログラム 1 で示した関数 f をどのように変更したらよいか．
変更後の関数 f を答えよ．

アルゴリズムとデータ構造の問題は，このページで終りである．
— 6 —令和 4 年度

大学院博士 (前期) 課程入学者選抜学力試験

A 日程
複雑系情報科学領域

専 門 科 目［90 分］
注 意 事 項

1．試験開始の合図があるまで，この問題冊子を開かないでください．
2．出題科目およびページは，下表のとおりです．問題ごとに配点が記されています．
出 題 科 目

ペ ー ジ

問題数

基

礎

数

学

1

2問

情

報

数

学

2

1問

応

用

数

学

3

1問

アルゴリズムとデータ構造

4〜 6

1問

注

意

左の 4 科目のうちから 3 科
目を選択し，解答してくだ
さい．

3．解答冊子の表紙の所定欄に氏名と受験番号をはっきりと記入してください．さらに，選択した科目名の選択欄に○印を記入してください．○印のついた 3 科目のみ採点します．

4．解答用紙は 4 科目分がそれぞれ綴じてあります．解答に用いなかった解答用紙も含
め，すべての解答用紙の所定欄に受験番号をはっきりと記入してください．

5．解答用紙には，科目名，問題番号（I，II など），問いの番号（問 1 など）が記入されているので，選択する科目の解答用紙を用いてください．

6．計算／下書き用紙 3 枚が解答用紙と一緒にあります．
7．試験中に問題冊子の印刷不明瞭，ページの落丁・乱丁および解答用紙の汚れ等に気がついた場合は，静かに手を挙げて監督員に知らせてください．

8．試験終了後，監督員の指示に従って，解答冊子の表紙と 4 科目分の解答用紙を袋に入れてください．4 科目分の解答用紙が入っていない場合，入っていない科目の点数
は 0 点となります．

9．問題冊子と計算／下書き用紙は持ち帰ってください．

基 礎 数 学

I 行列




 1


A=
 1


1
0

a 

−1 


a −1 −1に対し，線形写像 f : R3 → R3 を f (x) = Ax (x ∈ R3 ) により定める．ただし，aは実数とする．以下の問いに答えよ．（配点 25 点）
問 1 行列 A の階数を求めよ．
問 2 線形写像 f の核 Ker(f ) を求めよ．
問 3 線形写像 f の像 Im(f ) の基底を求めよ．

II 以下の問いに答えよ．（配点 25 点）
問 1 f (x) = sin x，g(x) = e−2x とする．以下の式をみたす 8 つの定数 ai および bi(i = 0, 1, 2, 3) をすべて求めよ．
f (x) = a0 + a1 x + a2 x2 + a3 x3 + o(x3 ) (x → 0)g(x) = b0 + b1 x + b2 x2 + b3 x3 + o(x3 ) (x → 0)
ただし，記号 o はランダウのスモールオーである．さらに，その結果を用いて
極限
(

lim

x→0

1
1
+ −2x
2 sin x
e
−1

)

を求めよ．
問 2 a は実数とする．広義積分∫ 1

xa log x dx が収束するような a の値の範囲を求

0め，そのときの広義積分の値を a を用いて表せ．

基礎数学の問題は，このページで終りである．
— 1 —情 報 数 学

I n は自然数とする．葉以外のすべての節点の分岐次数は 2，葉の数が n 個の順序根付
き木を Tn とする．さらに，相異なる Tn の総数を pn とする．このとき，p1 = p2 = 1,

p3 = 2 である．以下の問いに答えよ．（配点 50 点）
問 1 相異なる T4 をすべて示し，p4 を求めよ．
問 2 Tn の節点数と辺の数をそれぞれ n を用いて表せ．ただし，相異なる Tn の節
点数は等しいことを証明なしに用いてよい．
問 3 Tn のすべての葉の深さが m となるとき，n を m を用いて表せ．ただし，mは 0 以上の整数とする．
問 4 n は 2 以上とする．Tn は，Tn の深さ 1 の節点を根とする２つの部分木 Tn−kと Tk からなる．ただし，k は n − 1 以下の自然数とする．このことを利用し，pn を p1 , p2 , · · · , pn−1 を用いて表せ．

情報数学の問題は，このページで終りである．
— 2 —応 用 数 学

I 確率変数 X および Y のとる値をそれぞれ x, y とする．ただし，x, y は実数とする．
このとき，2 つの確率変数 X, Y が以下の同時確率密度関数をもつ確率分布に従うとする．
 ax(x + y)2

pXY (x, y) = 

0(0 ≤ x ≤ 1 かつ 0 ≤ y ≤ 1)
(上記以外)

ただし，a は定数とする．以下の問いに答えよ．（配点 50 点）
問 1 定数 a を求めよ．
問 2 確率変数 XY の期待値 E[XY ] を求めよ．
問 3 確率変数 Y の値を y に固定したときの X の条件付き確率密度関数を pX|Y (x|y)，
確率変数 X の値を x に固定したときの Y の条件付き確率密度関数を pY|X (y|x)とする．このとき，pX|Y (x|y) と pY|X (y|x) をそれぞれ求めよ．ただし，pX|Y (x|y)と pY|X (y|x) における x, y のとりうる値の範囲は 0 < x ≤ 1 かつ 0 < y ≤ 1 とする．
問 4 確率変数 X と Y は互いに独立であるか否か，理由とともに答えよ．

応用数学の問題は，このページで終りである．
— 3 —アルゴリズムとデータ構造

I 次の文章を読み，以下の問いに答えよ．（配点 50 点）
二分法を用いて 5 の 3 乗根を求めるプログラムを作成することを考える．二分法
は，数値関数 f (x) についての方程式 f (x) = 0 の数値解を求めるアルゴリズムである．解が一つだけ存在し得る x の区間を初期値として与え，その区間内で f (x) が単調減少または単調増加する場合に，区間を更新する以下の (i) から (iv) の処理を繰り返すことで数値解を求める．
（i） ステップ n における x の区間を (an , bn ) として，区間の中点 x = (an + bn )/2 を求める．
（ii） 区間の中点における f (x) を計算する．
（iii） 区間の中点における f (x) の値の絶対値が十分に小さい場合，区間の中点 x =(an + bn )/2 を数値解として繰り返しを終了する．
（iv） 区間の中点における f (x) の値が十分に小さくない場合は，区間の中点における f (x) の値に応じて，ステップ n + 1 における方程式 f (x) = 0 の解が存在し得る x の区間 (an+1 , bn+1 ) を求める．

5 の 3 乗根を求めるため，f (x) = x3 − 5 として f (x) = 0 の数値解を求める二分法
プログラムを C 言語で作成する．プログラム 1 に，上述の (i) から (iv) の区間更新
処理を再帰的に行う C 言語の関数 calcNextRange を示す．プログラム 1 では，区間を表す構造体 Range と，数値関数 f (x) に対応する C 言語の関数 f も定義している．なお，終了判定で使用している関数 fabs は絶対値を求めるライブラリ関数で
ある．

— 4 —

プログラム 1# include < stdio .h ># include < math .h ># define EPSILON 1e -10
double f ( double x ){return x * x * x - 5;}
typedef struct{ /* a <= b とすること */double a ;/* 区間下限 */double b ;/* 区間上限 */} Range ;void calcNextRange ( Range * range ){double mid_x ;/* 中点の x 座標 */double mid_fx ;/* 中点の x 座標における f(x) */mid_x =
(1)
mid_fx =(2)/* 終了判定 */if ( fabs ( mid_fx ) < EPSILON ) {range - > a = mid_x ;range - > b = mid_x ;(A)return ;}(B)/* 区間の更新 */if ( mid_fx(3)0) {range - > a = mid_x ;}if ( mid_fx(4)0) {range - > b = mid_x ;}(C)return ;}— 5 —問 1 プログラム 1 の空欄 (1)，(2) は，それぞれ区間更新処理 (i)，(ii) を行っている．空欄 (1)，(2) に入るステートメントをそれぞれ答えよ．
問 2 プログラム 1 の空欄 (3)，(4) が含まれる if 文は，区間更新処理 (iv) に関する条件判定を行っている．空欄 (3)，(4) に入る不等号（「<」または「>」）をそれぞれ答えよ．
問 3 プログラム 2 に示す関数 main をプログラム 1 の下に追加し，二分法で 5 の 3乗根を求める C 言語プログラムを動作させるためには，関数 calcNextRange から関数 calcNextRange を再帰的に呼び出す必要がある．関数 calcNextRangeの再帰的な呼び出しは空欄 (A)，(B)，(C) のいずれで行えばよいか．空欄の記
号とともに，空欄に入れるステートメントを答えよ．
プログラム 2

int main ( void ){Range range ;range . a = 0;
range . b = 5;
calcNextRange (& range );printf ( " x =% f \ n " , range . a );return 0;}

問 4 完成したプログラムを改変して，以下の方程式の数値解を求めたい．

x−

1
=1
x

(x > 0)(1)

このためには，プログラム 1 で示した関数 f をどのように変更したらよいか．
変更後の関数 f を答えよ．

アルゴリズムとデータ構造の問題は，このページで終りである．
— 6 —令和 4 年度

大学院博士 (前期) 課程入学者選抜学力試験

A 日程
知能情報科学領域

専 門 科 目［90 分］
注 意 事 項

1．試験開始の合図があるまで，この問題冊子を開かないでください．
2．出題科目およびページは，下表のとおりです．問題ごとに配点が記されています．
出 題 科 目

ペ ー ジ

問題数

基

礎

数

学

1

2問

情

報

数

学

2

1問

人

工

知

能

3〜 4

1問

アルゴリズムとデータ構造

6〜 8

1問

注

意

左の 4 科目のうちから 3 科
目を選択し，解答してくだ
さい．

3．解答冊子の表紙の所定欄に氏名と受験番号をはっきりと記入してください．さらに，選択した科目名の選択欄に○印を記入してください．○印のついた 3 科目のみ採点します．

4．解答用紙は 4 科目分がそれぞれ綴じてあります．解答に用いなかった解答用紙も含
め，すべての解答用紙の所定欄に受験番号をはっきりと記入してください．

5．解答用紙には，科目名，問題番号（I，II など），問いの番号（問 1 など）が記入されているので，選択する科目の解答用紙を用いてください．

6．計算／下書き用紙 3 枚が解答用紙と一緒にあります．
7．試験中に問題冊子の印刷不明瞭，ページの落丁・乱丁および解答用紙の汚れ等に気がついた場合は，静かに手を挙げて監督員に知らせてください．

8．試験終了後，監督員の指示に従って，解答冊子の表紙と 4 科目分の解答用紙を袋に入れてください．4 科目分の解答用紙が入っていない場合，入っていない科目の点数
は 0 点となります．

9．問題冊子と計算／下書き用紙は持ち帰ってください．

基 礎 数 学

I 行列




 1


A=
 1


1
0

a 

−1 


a −1 −1に対し，線形写像 f : R3 → R3 を f (x) = Ax (x ∈ R3 ) により定める．ただし，aは実数とする．以下の問いに答えよ．（配点 25 点）
問 1 行列 A の階数を求めよ．
問 2 線形写像 f の核 Ker(f ) を求めよ．
問 3 線形写像 f の像 Im(f ) の基底を求めよ．

II 以下の問いに答えよ．（配点 25 点）
問 1 f (x) = sin x，g(x) = e−2x とする．以下の式をみたす 8 つの定数 ai および bi(i = 0, 1, 2, 3) をすべて求めよ．
f (x) = a0 + a1 x + a2 x2 + a3 x3 + o(x3 ) (x → 0)g(x) = b0 + b1 x + b2 x2 + b3 x3 + o(x3 ) (x → 0)
ただし，記号 o はランダウのスモールオーである．さらに，その結果を用いて
極限
(

lim

x→0

1
1
+ −2x
2 sin x
e
−1

)

を求めよ．
問 2 a は実数とする．広義積分∫ 1

xa log x dx が収束するような a の値の範囲を求

0め，そのときの広義積分の値を a を用いて表せ．

基礎数学の問題は，このページで終りである．
— 1 —情 報 数 学

I n は自然数とする．葉以外のすべての節点の分岐次数は 2，葉の数が n 個の順序根付
き木を Tn とする．さらに，相異なる Tn の総数を pn とする．このとき，p1 = p2 = 1,

p3 = 2 である．以下の問いに答えよ．（配点 50 点）
問 1 相異なる T4 をすべて示し，p4 を求めよ．
問 2 Tn の節点数と辺の数をそれぞれ n を用いて表せ．ただし，相異なる Tn の節
点数は等しいことを証明なしに用いてよい．
問 3 Tn のすべての葉の深さが m となるとき，n を m を用いて表せ．ただし，mは 0 以上の整数とする．
問 4 n は 2 以上とする．Tn は，Tn の深さ 1 の節点を根とする２つの部分木 Tn−kと Tk からなる．ただし，k は n − 1 以下の自然数とする．このことを利用し，pn を p1 , p2 , · · · , pn−1 を用いて表せ．

情報数学の問題は，このページで終りである．
— 2 —人 工 知 能

I 次の文章を読み，以下の問いに答えよ．（配点 50 点）
図 1 のような迷路を考える．各マスには番号が振られており，スタート地点を 1，
ゴール地点を 16 としてスタートからゴールまでの経路を考える．図 1 において太線は壁を示し，通過することができない．また，上下左右の隣接するマスへの移動のコストはすべて 1 とし，斜めのマスへの移動はできないものとする．各マスの番号の下にそれぞれのマスの座標を (x, y) で表記する．この迷路のスタートからゴールまでの経路を A*アルゴリズムによって求める．

図1

問 1 図 1 の迷路について，分岐点と行き止まりのマスの番号をノードとし，移動可能なノード間をエッジで結んだグラフ表現を図示せよ．その際，移動のコス
トをエッジの重みとして，整数値を付記すること．例えばスタート地点を 1，
ゴール地点を 9 とする図 2 の迷路の場合，グラフ表現は図 3 のようになる．

図2

— 3 —

図3

問 2 スタートからゴールまでの経路を A*アルゴリズムにより探索する．問 1 の解答のグラフ表現に対し，A*アルゴリズムで探索した場合の探索順序を示せ．
その時，以下の条件を満たすこと．
条件 1 探索順序はマスの番号を順に列挙すること（例：1, 2, 3, 6）．
条件 2 A*アルゴリズムで用いるヒューリスティック関数はゴールまでのマン
ハッタン距離を用いるものとする．なお，座標 (x1 , y1 ), (x2 , y2 ) 間のマンハッ
タン距離は |x1 − x2 | + |y1 − y2 | である．
条件 3

A*アルゴリズムの評価関数による評価値が同値の場合は，マスの番号の小さいものを優先する．
問 3 得られる最短経路とその総コストを示せ．経路はマスの番号を順に列挙する
こと．

人工知能の問題は，このページで終りである．
— 4 —(このページは白紙である)— 5 —アルゴリズムとデータ構造

I 次の文章を読み，以下の問いに答えよ．（配点 50 点）
二分法を用いて 5 の 3 乗根を求めるプログラムを作成することを考える．二分法
は，数値関数 f (x) についての方程式 f (x) = 0 の数値解を求めるアルゴリズムである．解が一つだけ存在し得る x の区間を初期値として与え，その区間内で f (x) が単調減少または単調増加する場合に，区間を更新する以下の (i) から (iv) の処理を繰り返すことで数値解を求める．
（i） ステップ n における x の区間を (an , bn ) として，区間の中点 x = (an + bn )/2 を求める．
（ii） 区間の中点における f (x) を計算する．
（iii） 区間の中点における f (x) の値の絶対値が十分に小さい場合，区間の中点 x =(an + bn )/2 を数値解として繰り返しを終了する．
（iv） 区間の中点における f (x) の値が十分に小さくない場合は，区間の中点における f (x) の値に応じて，ステップ n + 1 における方程式 f (x) = 0 の解が存在し得る x の区間 (an+1 , bn+1 ) を求める．

5 の 3 乗根を求めるため，f (x) = x3 − 5 として f (x) = 0 の数値解を求める二分法
プログラムを C 言語で作成する．プログラム 1 に，上述の (i) から (iv) の区間更新
処理を再帰的に行う C 言語の関数 calcNextRange を示す．プログラム 1 では，区間を表す構造体 Range と，数値関数 f (x) に対応する C 言語の関数 f も定義している．なお，終了判定で使用している関数 fabs は絶対値を求めるライブラリ関数で
ある．

— 6 —

プログラム 1# include < stdio .h ># include < math .h ># define EPSILON 1e -10
double f ( double x ){return x * x * x - 5;}
typedef struct{ /* a <= b とすること */double a ;/* 区間下限 */double b ;/* 区間上限 */} Range ;void calcNextRange ( Range * range ){double mid_x ;/* 中点の x 座標 */double mid_fx ;/* 中点の x 座標における f(x) */mid_x =
(1)
mid_fx =(2)/* 終了判定 */if ( fabs ( mid_fx ) < EPSILON ) {range - > a = mid_x ;range - > b = mid_x ;(A)return ;}(B)/* 区間の更新 */if ( mid_fx(3)0) {range - > a = mid_x ;}if ( mid_fx(4)0) {range - > b = mid_x ;}(C)return ;}— 7 —問 1 プログラム 1 の空欄 (1)，(2) は，それぞれ区間更新処理 (i)，(ii) を行っている．空欄 (1)，(2) に入るステートメントをそれぞれ答えよ．
問 2 プログラム 1 の空欄 (3)，(4) が含まれる if 文は，区間更新処理 (iv) に関する条件判定を行っている．空欄 (3)，(4) に入る不等号（「<」または「>」）をそれぞれ答えよ．
問 3 プログラム 2 に示す関数 main をプログラム 1 の下に追加し，二分法で 5 の 3乗根を求める C 言語プログラムを動作させるためには，関数 calcNextRange から関数 calcNextRange を再帰的に呼び出す必要がある．関数 calcNextRangeの再帰的な呼び出しは空欄 (A)，(B)，(C) のいずれで行えばよいか．空欄の記
号とともに，空欄に入れるステートメントを答えよ．
プログラム 2

int main ( void ){Range range ;range . a = 0;
range . b = 5;
calcNextRange (& range );printf ( " x =% f \ n " , range . a );return 0;}

問 4 完成したプログラムを改変して，以下の方程式の数値解を求めたい．

x−

1
=1
x

(x > 0)(1)

このためには，プログラム 1 で示した関数 f をどのように変更したらよいか．
変更後の関数 f を答えよ．

アルゴリズムとデータ構造の問題は，このページで終りである．
— 8 —