見出し画像

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

受験者数、平均点等

第1問(必答)

問1


ブレインストーミングについて書いてありました。
ブレインストーミングは複数人で、あるテーマに関連して思いついたことを、ルールを守りながら活発に発言してアイデアを出していく問題解決の手法の一つです。
ブレインストーミングには以下の4つのルールがありました。こちらも合わせておさえておきましょう。

  1. 批判厳禁

  2. 自由奔放

  3. 質より量

  4. 便乗歓迎

なお、ブレインストーミングで出た意見を、付箋などを使ってグループ分けし、アイデアを整理していくKJ法という手法もあります。KJ法は、東京工業大学名誉教授の川喜田二郎氏が考案しました。

イ・ウ
著作権については大丈夫でしょう。
知的財産権には、大きく著作権と産業財産権があり、著作権には著作権と著作隣接権、産業財産権には特許権・実用新案権・意匠権・商標権があります。
上記の権利でどれか一つでもわからなかった場合や、著作者の死後何年間有効なのか(最近変わりましたね。50年ではないですよ。)について曖昧な場合はもう一度教科書等を使って調べておきましょう。
時間がある場合には著作権の例外規定についても調べてみましょう。

エ・オ
画像処理ソフトウェアの種類についての問題でした。
画像を作成・処理するソフトウェアには、ペイント系とドロー系があります。

ペイント系、ドロー系の違い

違いをおさえておきましょう。


グラフの種類についての問題でした。
円グラフ、棒グラフ、帯グラフ、折れ線グラフ、散布図、レーダーチャート、バブルチャート、ヒストグラム、箱ひげ図などいろいろなグラフがありますが、状況に応じて適切に使い分けられるようになっておきましょう。


拡張子とは、ファイル名の後ろについている「.mp3」のような文字のことです。ファイルの種類や圧縮形式について表しています。

ク・ケ
ウイルス対策は常にブラックハッカー(クラッカー)とホワイトハッカーとのいたちごっこです。日々新しいセキュリティホールが見つかったりマルウェアが作られては、対策がなされています。
ウイルス対策ソフトのインストールはもちろん、ウイルス対策ソフトの定期的な更新やOSのアップデートなどは必ず行うようにしましょう。

コ・サシ
計算問題でした。
35MBのファイルをダウンロードするのにかかる時間を求めます。
回線は平均560kbps(bits per second)ということなので、つまり1秒間に560kbitデータを送信できるということです。
今回1MB = 1000kBとするとあるので、35MB = 35000kB。
1B = 8bitなので、35000kB = 280000kbit。
280000kbit ÷ 560kbps = 500s = 8分20秒  となります。
今回は計算を簡単にするため、1MB = 1000kBとするという条件が付けられていましたが、この条件が書かれていない場合はいつも通り1MB = 1024KBなので注意してください。

問2

パリティチェックの問題でした。

スセ
2進数と10進数、2進数と16進数については必ず相互変換ができるようになっておきましょう。
今回のように変換の問題が出たら、問題用紙の端に以下の2つの表をサッと書いてしまいましょう。

対応表

対応表です。

では問題を解いていきます。

今回は1の個数が偶数なら0奇数なら1のパリティビットを付加します。

文字Aのコードは1000001で1が偶数個なので、パリティビットは0、パリティビットを付加したコードは(1000’0010)2です。(16進数への変換の時は4桁ごとに区切りを入れておくとスムーズです。おすすめ。)
変換すると以下の表のようになり、(82)16となります。

同様に、文字Fのコードは、上の表1より推測して、(1000110)2となりますので、パリティビットは1となります。
変換すると(8D)16となります。

今回はビット列に誤りがあることを検出できる垂直パリティチェックです。
ただし、ビット列の奇数個が送信時に誤った場合しか検出することができません。

ソ・タ
ビットが誤って送信されたことを検出しようという問題です。
5文字の通信を行って、受信されたビット列を16進数で表すと (A5)16、(8B)16、(99)16、(86)16、(A0)16であったとあります。
これを2進数のバイナリデータに変換した際に、1の数が奇数個だった場合は誤りが発生したと分かりますね。
変換していきましょう。
(A5)16

(8B)16

(99)16

(86)16

(A0)16

(86)16を見ると、(10000110)2となっており、1が奇数個あるので、ビット誤りがあることが分かります。

チ・ツ
今回文字P((A0)16= (10100000)2)も間違っており、送信側では文字X((10110001)2)を送信していたとのことなので、左から4番目と8番目のビットに誤りが生じていることが分かります。


先ほども書きましたが、今回は垂直パリティチェックです。
他にも水平パリティチェックというものがあります。
水平・垂直両方を使うことで、偶数個の誤り検出やビットの特定ができるようになります。

第2問(必答)

待ち行列の問題でした。

問1

アイ・ウエ・オカ
問1は実際に図を書いてみたらすぐに分かります。

図2の中に、表1を元に待ち時間とサービス時間を書き込んでみましょう。

書き込んでみると、

上ような図になるかと思います。
よって、客Cの待ち時間は30分、客Dの待ち時間は35分となります。
全員の待ち時間は(0+10+30+35+35) = 110分なので、5人で割ってひとり22分となります。

キ・クケ

最大待客数も図から算出できます。
全体を通じて、待っている人の最大数は3人です。以下の2つの期間です。

①10時10分〜10時15分までに客B、客C、客Dが待っている(5分)

②10時15分〜10時40分までに客C、客D、客Eが待っている(25分)

①+②で待機客数が最大になっている時間は30分と分かります。

問2


一つの窓口に2人を配置して同時に作業させることで、サービス時間を半分にします。
図を書いてみると以下のようになります。

待ち時間を計算してみると、(0+2.5+10+12.5+10)=35分

35分÷5人=7分 となります。

サシ・ス・セ
窓口を2つに分け、客は到着時にサービス中および待機中の合計客数が少ない方の待ち行列に並ぶ方法です。

こちらも図を描いてみましょう。

この時、最も長く待つ客は客Dで20分。

平均待ち時間は(0+5+5+0+20)÷5=6分となります。

また、窓口1でサービスを受ける客は客A・客C・客Eで、窓口2でサービスを受ける客は客B・客Dです。

ソタ・チ・ツ・テ
窓口を2つに分け、客は一つの待ち行列に並び、先頭から空いている窓口へ移動する方法です。

図を描いてみましょう。

この時、最も長く客の待ち時間は10分で客Dと客Eです。

平均待ち時間は(0+5+10+10+0)÷5=5分。

窓口1でサービスを受ける客は客A、客C、客D、客Eです。


図3(a)の並び方では、先に到着したはずの客Dが遅くきた客Eよりも遅くサービスが開始されてしまい、不公平感がありました。

なので、客の到着時刻の順序とサービス開始時刻の順序が常に等しくなる性質は(b)だけ成り立つと言えます。

第3問(選択)

この問題はよくできているなと感じました。問題文をしっかり読み、プログラムで何を実現したいのかが分かれば解けるはずです。

問1

ア・イ・ウ・エ

一つの箱には、重さの合計が9kg以下になる4個以下の商品を入れることができる。

さらに、今回は以下の基本ルールに沿って箱に商品を詰めていきます。

基本ルール: 番号が小さい商品から順に、その商品を入れることができる箱の中で、番号が最も小さい箱に入れる。

8個の商品の重さが、2, 8, 1, 1, 6, 6, 1, 2である場合、
1番目の商品(2kg)は箱1へ。
2番目の商品(8kg)は、箱1に入れると重さが9kgを超えるので箱2へ。
3番目の商品(1kg)は箱1へ。
4番目の商品(1kg)は箱1へ。
5番目の商品(6kg)は、箱1・箱2どちらに入れても9kgを超えるので箱3へ。
6番目の商品(6kg)は、箱1・箱2・箱3どれに入れても9kgを超えるので箱4へ。
7番目の商品(1kg)は、箱1へ。
8番目の商品(2kg)は、箱1だとすでに4個の商品が入っており、箱2だと9kgを超えるので箱3へ入れる。
となります。図にするとわかりやすいかもしれません。

よって必要な箱は4個となります。

問2

問2は基本ルールに従った作業指示書のプログラムです。

基本ルール: 番号が小さい商品から順に、その商品を入れることができる箱の中で、番号が最も小さい箱に入れる。

変数・配列の意味を考えれば解けるかなと思います。

syohinsu : 商品の個数
hakosu : 必要な箱数

オ・カ

【オ】>9または【カ】=4の間、

という部分から、新しい箱を追加したときに、

一つの箱には、重さの合計が9kg以下になる4個以下の商品を入れることができる。

この条件を満たすか確認しているであろうことが分かります。
なので、
【オ】には、Omosa[j] + SOmosa[i]が、【カ】にはHKosu[j]が入ります。
変数iは商品番号を、変数jは箱の番号を示していますね。
(05)でj ← j+1 となっているので、(04)の条件を満たさない場合(すなわち、商品を箱に入れるとその箱の重さが9kgを超えてしまうか既に4個の商品が入ってしまっている場合)は次の箱を検証します。

キ・ク
(04)~(06)行目のループを抜けると、商品iを入れる箱jが決まります。
(07)行目で、「i番目の商品をj番目の箱に入れる」と表示していますね。
(08)行目では、商品を入れた後、箱jの重さがどうなるのかと箱jの中に入っている商品の個数がどうなるのかを示しています。
当然、商品i分重くなりますから、【キ】にはHOmosa[j] + SOmosa[i]が入ります。
また、入っている商品の個数は+1されるので【ク】にはHKosu[j] + 1が入ります。


変数hakosuには必要な箱の数が格納されています。
(04)~(06)行目で、商品を入れる箱を決めますが、変数jがhakosuより大きくなってしまった場合は新たに箱を追加したということなので、hakosuにはjが入るということになりますね。
よって(09)行目は もしj > hakosu ならば hakosu ← j を実行する
となります。

問3

プログラム部分がやや難易度が高かったでしょうか。センターが発表している問題作成部会の見解でも問3の正答率が低かったとありました。

コ・サ・シ・ス
重さ重視ルールという新たなルールが登場しました。

つまり、商品を追加していく際に、そのとき一番重い箱に商品を入れるということですね。(もちろん、9kg以下・4個以下は満たしつつ)
図を描いてイメージしやすくしましょう。

この場合、箱の数は3つで済みますね。
商品番号1, 4, 5が箱1に、商品番号2, 3が箱2に、商品番号6, 7, 8が箱3に入ります。

セ・ソ・タ・チ・ツ・テ

変数kが増えたことで難しそうに見えますが、大部分は問2と同じです。
重さ重視ルールと基本ルールの違いは、一番重い箱に入れるという点です。なので、新たに増えた個所は、その判定をしていると考えることができます。

jは何番目の箱に入れるかを表す変数でした。(06)行目ではj ← kとなっていることから、kも箱の番号を表しており、(05)行目の判定により、kの箱が9kg以下&4個未満を満たしつつもjより重い箱であることが分かったためjにkを代入しているとわかります。

非常に考え抜かれているプログラムだなと思いました。

第4問(選択)

第4問は例年と比べると私は解くのに少し時間がかかってしまいました。個人的には、この年は第3問の選択がおすすめですね。問題作成部会の見解では、全体の正答率は3割後半であったとあります。

問1

ユーザIDは、学科記号+入学年度下一桁+生徒番号で表されます。

ア・イ

列Fに入学年度の下一桁目を表示します。

入学年度(B列)の数字の下一桁を取ってくれば良いですね。

表計算は、最後に必ず説明文が載っているので、確実に点を取って行きたいです。(関数を知らなくても正解できます)

F2は、B2のセル(2013)の末尾1文字分(3)を入れたいので、

=RIGHT(B2, 1)となりますね。

ウ・エ・オ・カ

列Gには学科記号が入ります。

個人的には、VLOOKUPで良かったのでは?と思いますが、問題作成側はIF関数を出したかったようです。

IFの中にIFが入る入れ子構造になってましたね。

シート3 D2のセルに入っている学科名をシート2から探してきています。

=IF(D2 = 学科記号!A$2, 学科記号!B$2, IF(D2 = 学科記号!A$3, 学科記号!B$3, 学科記号!B$4))

D2のセルが学科記号のA2(すなわち「普通科」)と同じならば、学科記号のB2(すなわち「f」)をいれる。

学科記号のA2と同じではなく、学科記号のA3(すなわち「商業科」)と同じならば、学科記号のB3(すなわち「s」)をいれる。

それ以外の時学科記号のB4(すなわち「e」)をいれる。


また、今回はA$2・A$3のように相対参照になっていました。
これは、G2に入れた式を下にオートフィル(複写)した時に、範囲がずれないようにするためですね。

$A$2のように絶対参照にしても構いません。

絶対参照・相対参照がわからない人はもう一度復習しておきましょう。

キ・ク

列Hには生徒番号を3桁の文字列として表示します。

計算式は RIGHT(“00” & E2, 3)となります。

最初に00をつけるので、1桁の場合でも、「001」のようにすることができますし、
3桁の場合でも「00200」の末尾3文字分なのできちんと「200」とすることができます。
このやり方は賢いですね。仕事でも使えそうです。勉強になりました。

問2

生成する初期パスワードは、数字の1(イチ)、l(小文字エル)、I(大文字アイ)、0(ゼロ)、O(大文字オー)を除いた英数字ですので、計57文字になります。

(数字0~9 から0と1を除くので8個)+(小英字a~z からlを除くので25個)+(大英字A~ZからIとOを除いた24個)= 57個

ケコ

0~56までの整数をランダムに表示したいです。

0以上1未満の少数で発生させるので、セルA2に入るのは

INT( RAND() * 57 )になります。

例えば、生成された少数が0.0001だった場合、INT( 0.0001 * 57)は0になりますし、0.999999だった場合はINT( 0.999999 * 57 )は56になりますね。

0以上1未満なので、0 ~ 56までの数字を生成できます。

サ・シ

表検索のVLOOKUPの登場です。
J列からQ列までにはA列からH列に入っている数字をシート4から検索して挿入します。

J2に入る式は

=VLOOKUP( A2, 使用文字!$A$2~$B$58, 2) となります。

範囲A2~B58のA列から見つけてきて、2列目を返します。

ス・セ
これもよく考えてあるなと感心した問題です。

パスワードに数字と英字の両方が含まれているかを確認します。両方が含まれている場合は列Sに1を表示し、そうでない場合は0を表示します。
セルS2には

IF( AND( MIN( A2 ~ H2 ) <= 7, MAX( A2 ~ H2 ) >= 8), 1, 0)

が入ります。これは使用文字の番号が数字は7以下、英字は8以上だからですね。


列Tには、数字と英字の両方を含んだパスワードだけに1から始まる連番を振ります。

式は IF( S2 = 1, SUM( S$2 ~ S2 ), “”) となります。

SUMの範囲がS$2 ~ S2となっている点に注目ですね。オートフィルした際に、先頭はS$2なので範囲が変わりませんが、S2は変わっていきます。結果的に、1から始まる連番となるというわけですね。これも実務で使えそうです。参考になりました。

タ・チ
シート5で1200行使ってパスワードを作っていました。
シート6のパスワードはA列の数字を、シート5の連番と同じ数字を見つけて横のパスワードを持ってくれば良いです。よって式は

VLOOKUP( A2, パスワード!T$2~U$1201, 2)となります。


問3

パスワード分析を行います。

ツ・テ・ト

B2には

IF( B1 <= $W2, MID( $A1, B1, 1), “”)

が入ります。

$A1については絶対参照にしても良いですし、B1についてはB$1でも良いですね。A1の文字列の、B1文字目から1文字分を表示します。

ナ・ニ・ヌ
パスワード内の同じ文字の数を表示します。

=IF( B2 = “” , “”, COUNTIF( $B2 ~ $U2, B2))

B2のセルが空白ではない場合、B2~U2セルの中からB2と同じ文字が入っているセルの数を取得し表示します。

ネ・ノ・ハ
連続する文字の数を表示します。

=IF( C2 = “”, “”, IF( B2 = C2 , B4+1, 1))

セルC2が空白でない場合、IF( B2 = C2 , B4+1, 1)を実行します。

一つ前のB2とC2が同じ場合には、連続文字の数字を+1します。

ヒ・フ
5行目には、パスワード内の文字を左から見て、初めて出現する文字の場合に1を表示します。

初めて出現する文字かどうかの判定を、今回の場合はCOUNTIFの数字が>1かどうかで判断しています。

=IF( B2 = “”, “”, IF( COUNTIF( $B2 ~ B2, B2) >1, “”, 1))

COUNTIFの範囲は$B2 ~ B2です。これは問2のソと同じですね。


参考文献等

※本記事は2020.10.01にtkmium.techで公開したものを移行したものです。

「情報関係基礎」の問題は(独)大学入試センターから掲載許可を得て解説を作成しています。問題および解答の著作権は大学入試 センターに帰属します。
解説の文章および画像等を無断で転載することはお控えください。
質問や誤植のお知らせ、その他連絡につきましてはコメント欄またはTwitterからお願いいたします。

ブログで公開していた時にいただいていたコメント

マサキ さん: 2020年10月11日
本当に本当にありがとうございます!!!!

やんちゃん さん: 2020年10月11日
ありがとうございます♪これで勉強捗ります!

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