慶應義塾大学 環境情報学部 2022年度一般入試「数学または情報」情報部分 解答

問題はこちら

情報I

(ア) (1): (9)レッスン, (2): (3)講師, (3): (5)生徒, (4): (0)日本音楽著作権協会, (5): (2) 公衆
著作権法の知識が必要なのは(5)だけのように思います。あとは文脈と時事知識

(イ) (3)
(3)は任天堂対コロプラ事件を思い浮かべれば正しいことがわかりますが、アルゴリズムは特許の保護を受けられないので結構きわどいところを聞いている印象を受けました

(ウ) (2)
これもきわどいところを聞いていて、プログラムそのものは著作権による保護の対象になるのがややこしいです。問題文の「プログラム言語」とはプログラミング言語の仕様のことで、これが著作権で保護されてしまうとその言語で書かれたすべてのプログラムがその言語の二次的著作物になって不都合があることに気がつけば答えられますが、難しい

(エ) (3)
これを認めると合併が取扱ルールの抜け道になってしまうし、他の選択肢に特に怪しいところがないのでかんたんに選べると思います

情報II

(9), (10): -2
(11), (12): -1
定義どおり計算するだけですが私は間違えました。念のために Python に実際に突っ込んで検算したら気が付きました……

(13), (14): 1
(15), (16): -1
(17): (2), (18): (3), (19): (4)
Cだとnが負の奇数のときにn % 2が-1になるからです

情報III

(ア)
(20)から(25): abc*+d+
(26)から(32): abcd+*+
(33)から(39): ab+cd+*
(40)から(45): ab*c/d+

(イ)
やってることはスタックを用いた構文解析で高度。
式の解析に用いるスタックと逆ポーランド記法の計算に用いるスタックの両方の状態に注意しないといけない難問
具体例を考えるとわかりやすく、間違いにも気が付きやすいです

大方針として、解析用のスタックには「右オペランドを待つ演算子と開いたカッコ」を積んでいき、演算子は右オペランドが決まったら、開いたカッコは対応した閉じカッコが来たら pop します。スタックの上にある演算子ほど先にやることに注意し、演算子の処理順に合うようにスタック上の順序を調整します。カッコを対応をスタックで解析できることを知っている受験生は有利だったでしょう

x が数値の場合: x を出力する
x が ( の場合: x を push する
x が ) 、かつ p が ( の場合: p を pop して廃棄し、x を廃棄する
x が ) 、かつ p が ( でない場合: p を pop して出力する
x が演算子、かつスタックが空の場合: x を push する
x が乗除、かつ p が乗除の場合: p を pop して出力する
x が乗除、かつ p が乗除でない場合: x を push する
x が加減、かつ p が演算子の場合: p を pop して出力する
x が加減、かつ p が演算子でない場合: x を push する

情報IV

(ア)
(55), (56): (18)
A1 を見なくてもよいことに注意。選択肢がちょっと意地悪

(イ)
(57) から (80)
0001
1000
1001
1010
1011
1110
(81), (82): (30)
(83), (84): (18)
(85), (86): (33)
(87), (88): (12)
(89), (90): (33)
(91), (92): (18)
(93), (94): (30)

情報V

素集合データ構造を題材にとったアルゴリズムの問題。情報オリンピックに出ているような高校生ならUnionFindを知ってて楽勝でしょうが、そうではない大多数の受験生は問題文を手がかりに解き進めることになります

(ア)
(95): (6) g_b, (96): (3) c, (97): (8) g_i
途中で g_b も書き換えるのであらかじめこの値を c に退避しておく必要があります

(イ) 
(98): (4): 0, (99): (6) p_i, (100): (2) i
p_i が i が指している人の番号、iが指している人をたどっているときに今見ている人であるようにして、代理人を求めるアルゴリズム2cを完成させればよいです

(ウ)
(101), (102): 31
(103), (104): 31
(105), (106): 1
Cが実行される順番は誰が誰を指しているかの構造によりますが、この構造はどの順番で握手をするかによって変化します。全員が1回ずつ同じ人Aと握手すればAは0回、それ以外の人は1回で代理人Aにたどり着くので、最小は1です。一方、AはBとBはCと……というように長いチェインを構成するように握手すると、その末尾の人は代理人Aにたどり着くまでに自分以外の全員の番号をiに書き込むから最大値は32-1で31です。

講評

総合政策学部の問題と同じく、知的財産権・プライバシーについて問うI、基本的な情報数学のII, アルゴリズムの設計と解析をするIIIとV, 論理回路のIVという構成でした。
IIIの(イ)が飛び抜けて難しいです。設計しているアルゴリズムがまず複雑で、出題者の意図を推測してそのとおりに実装する必要性が難易度を無駄に高めていました。実際にプログラミングさせる形式なら受験生が実装方針を自分で選べるのでよいのですが、筆記試験で出すには無理がありました。出題者の意図についてもう少し誘導があるべきです。

この記事が気に入ったらサポートをしてみませんか?