tkmiumのブログ

tkmium-note

プログラミング中に気づいたことや日々の記録を書いていきます。情報関係基礎の解説記事等も作成します。

【解説】情報関係基礎 平成31年度 センター試験

センター試験解説シリーズ 平成31年 情報関係基礎 解説

f:id:tkmium:20190121134016j:plain

 

問題 : jouhoukankei-H31.pdf - Google ドライブ

解答 : jouhoukankei-H31_answer.pdf - Google ドライブ

 

受験者数 平均点 最高点 最低点 標準偏差
397 49.64 98 0 18.63

※中間集計その2より

*1

 

 

第1問(必答)

問1

f:id:tkmium:20190121140217p:plain

a

ア : ⑨暗号化

イ : ⓪Webサーバ

ウ : ④ファイル名

エ : ①国名

オ : ②大学や企業のような組織種別

カ : ⓪DNSサーバ

 

H30年でも似た問題が出題されていましたね。

f:id:tkmium:20180905194143p:plain

httpsとは、SSL(Secure Sockets Layer)と呼ばれる通信方式でサーバと通信を行うプロトコルです。

SSLは第三者機関である認証局が発行した証明書を確認して通信を行います。

 

また、クレジットカード情報やパスワード情報などを暗号化して通信を行うので安全です。

www.sslcerts.jp

jp.globalsign.com

 

近年世界的にSSL通信化が進んでいます。

2018年7月からGoogle Chrome(webブラウザ)で、httpsではないサイトで「保護されていない通信」と表示されるようになりました。

ssl.sakura.ad.jp

 

トップレベルの.jpなどが国名、第2レベルが組織などです。

www.nic.ad.jp

 

DNS(Domain Name System)等は基本中の基本ですね。

www.kagoya.jp

 

b

キ : ③パケット

クケコ : 255

サ : ④28

 

32ビットIPアドレスは8ビットずつ区切って表示します。

28は256なので、0から開始すると255まで表示できます。

 

ビット数を32から40に増やすと232から240に増えるので表示できるIPアドレスの個数は28倍になります。

 

c

シ : ④復号

ス : ③受信者の公開鍵

 

暗号化と復号の問題です。

選択肢の量子化や標本化などは暗号化するときの言葉ですね。

H30でも第1問の問2で出題されていました。

 

問2

f:id:tkmium:20190121140248p:plain

セ : ⓪f:id:tkmium:20190121145911p:plain

ソ : ⓪f:id:tkmium:20190121145911p:plain

タ : ①f:id:tkmium:20190121145932p:plain

チ : ①f:id:tkmium:20190121145932p:plain

ツ : ②f:id:tkmium:20190121145944p:plain

テ : ③Aの状態が1かつCの状態が1

ト : ①SW1・SW2・SW2・SW1

 

セ~ツ 

 地道に当てはめて解いていきます。(かなり面倒だなと思いました...)

 

まず回路1の時を考えます。

f:id:tkmium:20190121150511p:plain

全ての状態の時の出力の様子を表にしました。

f:id:tkmium:20190121152938p:plain

 

回路2の時は、

f:id:tkmium:20190121150531p:plain

以下のようになります。

f:id:tkmium:20190121153212p:plain

 

Bが1の時だけ抜き出すと、次の表のようになります。

A B C 出力2
0 1 0 0
0 1 1 1
1 1 0 1
1 1 1 0

XOR回路ですね。

 

⓪のSW1・SW2・SW2・SW1 を表にしてみました。これが正解ですね。

f:id:tkmium:20190121160447p:plain

 

XOR回路であればOKです。

 

この問題は問題文にヒントがありますね。

「テ : ③Aの状態が1かつCの状態が1」の時の出力2が、AとCの論理和の結果と異なることがわかった」

この文章です。

 

SW1・SW2・SW1にSW2が追加されてもXORであることには変わりないのです。

そもそも、SW2は0でも1でも回路は交差しているだけでどちらも繋がっています。

SW2が追加されても出力結果が逆になるだけなので問題ありません。今回は階を一つ増やしたので、SW2が一つ増えている①が正解でしたが、SW2が2つであれば正解です。

なので、SW1・SW2・SW1・SW2などでも正解です。

 

階をどれだけ増やしても今後はSW2を追加していけば良いというわけですね。

 

第2問(必答)

情報というより数学みたいな問題でした。

問題文をきちんと読んでいけば解答できます。

 

問1

f:id:tkmium:20190121140342p:plain

アイ : 40

ウエ : 50

オ : ⓪a×s+p

カ : ④b×t+q

キ : ②a×(s+p)

ク : ⑥b×(t+q)

ケ : ③-t

コ : ⓪s

サ : ⑦h

シ : ⑥w

 

ア~エ

描画したい長方形は以下

f:id:tkmium:20190121164151p:plain

幅が20、高さが50です。また、中心点は((30+50)/2, (30+80)/2)で(40, 55)です。

よって、命令は 長方形(20, 55, 20, 50)となります。

 

オ~ク

原点中心倍率(a, b)は4つの頂点それぞれのx座標をa倍、y座標をb倍するので

中心(s, t)は(a×s, b×t)となり、幅と高さもそれぞれa倍、b倍されるので

 

長方形(s, t, w, h)→原点中心倍率(a,b)を実行すると

長方形(a×s, b×t, a×w, b×h)となります。

 

その後、移動(p, q)をするので中心の座標がx軸方向にp、y軸方向にq移動します。

よって、長方形(s, t, w, h)→原点中心倍率(a,b)→移動(p, q)を実行すると

長方形(a×s+p, b×t+q, a×w, b×h)となります。

 

また、移動(p, q)を先に実行すると、

長方形(s+p, t+q, w, h)を原点中心倍率(a,b)することになります。

よって長方形(a×(s+p), b×(t+q), a×w, b×h)となります。

 

ケ~シ

原点中心回転(Θ)は、長方形を回転移動するとあります。

図にすると以下のようになります。

f:id:tkmium:20190121170230j:plain

注意するところは、中心(s, t)が中心(-t, s)となるところでしょうか。

幅と高さが入れ替わるところにも注意が必要です。

 

よって、長方形(s, t, w, h)→原点中心回転(Θ)は

長方形(-t, s, h, w)となります。

 

問2

f:id:tkmium:20190121140424p:plain

ス : ②-s

セ : ③-t

ソ : ⓪Θ

タ : ⓪s

チ : ①t

ツ : ⓪a

テ : ①b

トナ : 10

ニヌ : 70

ネノ : 40

ハヒ : 60

 

ス~テ

問題文通りに進めていきます。

(1)長方形の中心が原点になるように移動命令を用いる。

(2)原点中心回転命令を用いて回転移動する、または、原点中心倍率命令を用いて大きさを変える

(3)長方形の中心が元の位置になるように移動命令を用いる

 

これを図にすると以下のようになります。

f:id:tkmium:20190121172755p:plain

一旦原点に戻して、回転したりサイズを変更したりして、元の位置に戻すということですね。

 

<長方形(s, t, w, h)→長方形中心回転(Θ)>

長方形(s, t, w, h)を原点に移動したいので、移動(-s, -t)を行います。

これで長方形(0, 0, w, h)となります。

 

次に回転させるので、原点中心回転(Θ)を行います。

これで長方形(0, 0, h, w)となります。

 

元の位置に戻したいので、移動(s, t)を行います。

これで長方形(s, t, h, w)となります。

 

<長方形(s, t, w, h)→長方形中心倍率(a, b)>

長方形(s, t, w, h)を原点に移動したいので、移動(-s, -t)を行います。

これで長方形(0, 0, w, h)となります。

 

x軸にa倍、y軸にb倍したいので、原点中心倍率(a, b)を行います。

これで長方形(0, 0, a×w, b×h)となります。

 

最後に元の位置に戻したいので移動(s, t)を行います。

これで、長方形(s, t, a×w, b×h)となります。

 

ト~ヒ

命令文①

長方形(60, 20, 40, 20)→長方形中心回転(90)を行うと

長方形(60, 20, 20, 40)となります。

長方形(50, 30, 20, 40)と一致するためには、x軸方向に-10、y軸方向に+10移動する必要があるので

長方形(60, 20, 40, 20)→長方形中心回転(90)→移動(-10, 10)となります。

 

命令文②

長方形(60, 20, 40, 20)→原点中心回転(90)を行うと

長方形(-20, 60, 20, 40)となります。

長方形(50, 30, 20, 40)と一致するためには、x軸方向に+70、y軸方向に-30移動する必要があるので

長方形(60, 20, 40, 20)→原点中心回転(90)→移動(70, -30)となります。

 

命令文③

長方形(?, 10, 40, 20)→長方形中心倍率(0.5, 2)を行うと

長方形(?, 10, 20, 40)となります。

その後、移動(10, 20)を行なっているため長方形(?+10, 30, 20, 40)となります。

長方形(50, 30, 20, 40)と一致するので

(?+10)=50

?=40となります。

よって長方形(40, 10, 40, 20)→長方形中心倍率(0.5, 2)→移動(10, 20)となります。

 

命令文④

長方形(?, 25, 40, 20)→原点中心倍率(0.5, 2)を行うと

長方形(0.5×?, 2×25, 0.5×40, 2×20)すなわち長方形(0.5×?, 50, 20, 40)となります。

その後、移動(20, -20)を行なっているため長方形((0.5×?)+20, 30, 20, 40)となります。

長方形(50, 30, 20, 40)と一致するので

(0.5×?)+20=50

?=60となります。

よって長方形(60, 25, 40, 20)→原点中心倍率(0.5, 2)→移動(20, -20)となります。

 

第3問(選択)

 

問1

f:id:tkmium:20190121140525p:plain

ア : 2

イ : 3

ウ : ③D

エ : ⑧I

オ : 4

カ : ⓪春

キ : ②秋

ク : ⑥G

 

アイ

クラスの生徒数が4の倍数でない場合には、生徒数を4で割った時の余りと同じ数のグループに生徒を1名多く振り分ける。

とあります。

今回クラスの生徒数は10名なので

10÷4=2あまり2

より、2グループの人数が1人多いことになります。

よって2人のグループが2つ、3人のグループが2つできます。

 

ウエオ

図にしてみました。

方法1では、1名多いグループが先に決まるので、春・夏が3人のグループ、秋・冬が2人のグループとなります。

f:id:tkmium:20190203162530j:image

 

カキク

方法2では、第一希望の多いグループに振り分けるとあるので、春・秋が3人、夏・冬が2人のグループとなります。

f:id:tkmium:20190203162542j:image

よってGが方法1と違うグループになります。

 

問2

f:id:tkmium:20190121140624p:plain

変数や配列が多すぎて頭が混乱してきますね。どこで何をしているのかをしっかり判断できないと少し難しい問題でした。問3も同様です。
第3問のプログラムは、for文やif文ごとに区切って考えるのがいいでしょう。

今回の問題だと以下のようになります。

f:id:tkmium:20190203184433j:image

 

トレースしながら合うものを見つけるのがおすすめです。

本番では途中までのトレースで構いませんが、勉強のときは全てやってみるといいです。

今回のプログラムをトレースしたものを以下に示します。赤文字のところで数字が変わります。

f:id:tkmium:20190203195945p:plain

図1のプログラムの行と照らし合わせながら確認してみてください。

画質が落ちて見辛いと思いますので、エクセルファイルをダウンロードしてお使いください。

H31情報関係基礎第3問問2トレース表.xlsx - Google ドライブ

 

問3

f:id:tkmium:20190121140708p:plain

問2同様にトレースしながら確認してみてください。

実際にC言語等でプログラミングしてみると一層理解は深まるかと思います。

f:id:tkmium:20190203184445j:image

 

第3問はかなり難易度は高めでしたね。もう少し使う変数や配列が少ないと良かったのですが...

第3問を選んだ方の平均点は低いのではないでしょうか。

 

第4問(選択)

難易度は優しめでした。

今回の問題では第3問を選ぶよりは第4問を選んだ方がいいかと思います。(試験中にはなかなか判断できませんが...)

平成30年の問題のように、エクセルで再現しようかとも思ったのですが、流石に600人分の架空のデータを作って辻褄を合わせるのは途方もない作業になりそうだったので断念しました。すみません。

 

問1

f:id:tkmium:20190121140819p:plain

ア : ②AVG(D2~F2)

イ : ③SUM(G2~I2)

ウ : ②$B$2~$B$601

エ : ①$A2

オ : ⑦J$2~J$601

カ : ⑤$C$2~$C$601

 

ア~イ

3日間の平均睡眠時間とあるので、シート1生活習慣調査のD, E, F列の3日間の睡眠時間の平均をとるのでAVG関数を使います。

 

AVG関数はエクセルだとAVERAGE(数値1, 数値2, ...)と入力しないといけませんが、情報関係基礎ではAVGと略してあります。

また、範囲の指定もエクセルだと「D2:F2」のように表すところを情報関係基礎では「D2~F2」のように表すのも若干の注意が必要です。

 

アの正解はAVG(D2~F2)です。複写しますがJ3~J601に複写とあるので行が変わります。

同じ行にあるD2, E2, F2の平均値が欲しいので「$」は必要ありません。

J2がAVG(D2~F2)で、J3に複写するとAVG(D3~F3)のように数字が変化します。

 

イでは、三日間の朝食回数を計算とあります。平均ではないので注意。

朝食を食べた回数の合計を求めるので、SUM(G2~I2)が正解となります。

 

COUNTでは、セルに数字が入っている個数を返すので、1でも0でも同じ(この場合3)が返ってくるので、朝食を食べた回数の合計が求められません。

 

ウ~オ

次に求めるのは学年別の平均です。

セルB2は1年生の平均睡眠時間なので、

AVGIF(生活習慣調査!$B$2~$B$601, A2, 生活習慣調査!J$2~J$601)が正解です。

 

AVGIF(セル範囲1, 式, セル範囲2)はセル範囲1のなかで、式と等しい値をもつセルに対応するセル範囲2の中の平均値を返します。

 

今回は、生活習慣調査のシート1の列B(学年)がA2のセル(1)と等しいものを見つけて、同じ行のJ列(個人平均睡眠時間)の値の平均値を返します。

B3, B4に複写とあるので、範囲(行)が動かないようにB$2~B$601とし、

さらにC2~C4にも複写とあるので、範囲(列)も動かないよう$B$2~$B$601となります。

 

シート3では距離別の平均を作成します。ここでも先ほどと同様AVGIFが登場します。

AVGIF(生活習慣調査!$C$2~$C$601, A2, 生活習慣調査!J$2~J$601)が正解です。

今回も、複写するのですが範囲が動いてしまっては困るので範囲指定は$C$2~$C$601となります。

 

問2

f:id:tkmium:20190121140850p:plain

キ : ③MEDIAN

ク : ③7.0

ケ : ④A2

コ : ②2

サ : ③COUNTIF(3年生!$B2~$B201, B1)

シ : ③睡眠時間が7.0以上の生徒については、睡眠時間が増えるにつれて睡眠時間ごとの生徒数が減少する。

ス : ①6.5以下

 

キ・ク

これらは関数知ってる?という問題でした。しかし、情報関係基礎の場合後ろに関数の説明はバッチリ載っているのでこれを問題にする必要はあるのでしょうか...。

f:id:tkmium:20190128173221j:plain

キは選択肢のINT, COUNT, MODE, MEDIANから中央値を求めるMEDIANを選べばOKです。

 

最頻値をもとめるのはMODEなので、シート5のB4にはMODE(3年生!A2~A201)が入力されているはずです。そこで求められた値が7.0となっているので3年生で一番多い睡眠時間は7.0時間だったということですね。

絶対に落とせない点取り問題でした。

 

ケ・コ

0.5時間単位で小数部分を切り捨てた値を求めます。

INT(式)は式の値を超えない最大の整数を返す関数です。例をあげればINT(6.5)などの場合6になるということですね。

 

しかし、そのままINT(A2)などにしてしまうとかなり値に誤差が生まれてしまいます。

どういうことかというと、今回A2の値は6.7ですが、INT(A2)とすると6になってしまいます。極端な話、6.1も6になりますし、6.9も6になってしまうわけです。

これでは統計として信頼のできる結果とは言い難いです。

 

そのため、一旦値を2倍にして、2倍された値をINT()して、また2で割るということをします。これをすることで、誤差を少なくすることができます。

 

B2の場合、INT(6.7*2)/2で6.5となります。

 

実際にエクセルで統計を出すときはROUND関数等を用いて四捨五入することが多いかと思いますが、情報関係基礎や情報処理技術者試験では今回のような方法を取られることが時々あるので覚えておくといいかと思います。

 

サ~ス 

サ~スは表とグラフを見ながら答える問題でした。

シート6セルB2には、睡眠時間がB1(5.0時間)と一致する生徒の人数を数えるため、COUNTIF関数が入ります。

 

SUMIFだと条件に合う中に入っている数値の合計が返されてしまいます。

しかも、A列から5.0時間と合致するのを見つけるというのはおかしな話ですよね。

 

②と③で迷うかと思いますが、今回はC2~L2に複写するとあるので、複写した時に列がずれてしまわないよう$B2~$B201とする必要があります。

$がないと、複写した時C2~C201のように存在しない列を参照してエラーが出てしまいます。

 

問3

f:id:tkmium:20190121140915p:plain

セ : ⑥F$2

ソ : ⓪A2

タ : ②24

チ : ③D2~D601

ツ : ⓪睡眠時間と朝食の間に正の相関がある。

テ : ④経過時間は、睡眠時間との間に負の相関があり、朝食との間にも負の相関がある。

 

セ~タ

経過時間を求めます。

正解はA2*60+B2-F$2*60+IF(F$2>A2, 24*60, 0)となります。

 

まず経過時間を分単位で表すために、A2*60+B2で就寝時刻(時)を分にします。

 

21時からの経過時間(分)を求めるので、基準となる21が記載されているF2*60を引きます。(-F$2*60)

 

23時台まではここまでのA2*60+B2-F$2*60の式で大丈夫なのですが、0時以降はこの式だとマイナスの値になってしまいます。

なので、IF(F$2>A2, 24*60, 0)で、21時より小さい値(0時以降)の場合に24*60分をプラスするようにします。

 

600行目を使って考えてみましょう。

f:id:tkmium:20190128181147p:plain

A2*60+B2-F$2*60+IF(F$2>A2, 24*60, 0)

就寝時刻(時)が0なので、0*60+25-21*60=-1235です。経過時間を知りたいのにマイナスだと困ります。

0は21より小さいので、IF文が真の時に実行される24*60がプラスされ、セルC600には205が入ります。

 

相関関係を求めるのにCRREL関数を用いています。

CRREL関数を実行すると相関係数を求めることができます。

 

相関係数=Correlation coefficient(コリレーション コフェシエイト)から来ています。

 

経過時間と睡眠時間の相関関係を調べ、経過時間と朝食の相関関係も調べるためにB2に複写したとあるので、

CORREL(再調査集計!$C2~$C601, 再調査集計!D2~D601)が正解です。

$D2~$D601としてしまうと、複写しても範囲が変わらず経過時間と睡眠時間の相関関係が表示されてしまいます。

 

<おまけ>

C2にはCORREL(再調査集計!D2~D601, 再調査集計!E2~E601)が入力されています。

 

ツ・テ

ツ・テは一つ一つ内容をみて合っているか合っていないか確認していけば解ける問題でした。

f:id:tkmium:20190128182711p:plain

 

最後に

 

問題および解答の著作権は独立行政法人大学入試センターに帰属します。

解説の文章および画像等を無断で転載することはお控えください。

質問や誤植のお知らせ、その他連絡につきましてはコメント欄およびお問い合わせフォームまたはTwitterからお願いいたします。

 

www.tkmium.tech

 

参考文献
  1. GMO : SSL/TLS総合解説サイト, https://www.sslcerts.jp/
  2. GMO : SSL暗号化通信の仕組み, 

    https://jp.globalsign.com/ssl-pki-info/ssl_practices/ssl_encryption.html

  3. SAKURA internet : Chromeの強制的な警告表示が2018年7月から開始, 

    https://ssl.sakura.ad.jp/column/https-not-valid3/

  4. 日本ネットサーフィンインフォメーションセンター : ドメイン名の仕組み, 

    https://www.nic.ad.jp/ja/dom/system.html

  5. KAGOYA JAPAN : 【図解】DNSサーバとは?設定・変更と確認方法, 

    https://www.kagoya.jp/howto/rentalserver/dns-server/

 

 

*1:資料 : 独立行政法人大学入試センターHP https://www.dnc.ac.jp/