「厳選5題」過去問と解説 | 平成29年度 春期 の過去問やるならこれをやれ


2020-03-04 更新

ここでは、平成29年度 春期 基本情報技術者試験の午前試験の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。

やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題(練習しないとできない問題)です。

【厳選問題 1 】
この表記は何だろう? そう思ったなら練習しておこう

問 6 平成 29 年度 春期

関数 f ( x, y ) が次のとおり定義されているとき,f ( 775, 527 ) の値は幾らか。ここで,x mod y は x を y で割った余りを返す。

f ( x, y ): if y = 0 then return x else return f ( y, x mod y )

ア 70  イ 31  ウ 248  エ 527

解説

この問題には、何やらプログラムのようなものがありますね。いったい何でしょう?

これは、出題者が勝手に作ったプログラミング言語もどきです。基本情報技術者試験には、このように、何の説明もなしに「わかるよねえ」というノリでプログラミング言語もどきが示されることがあります。

ある程度プログラミング経験があれば、「何となくわかる」なのですが、プログラミング経験が少なければ「わからない!」でしょう。それなら練習しておきましょう。

 

このプログラミング言語もどきは、関数 f ( x, y ) の処理内容を定義しています。

if、then、return、else は、英語として意味を考えてください。

if y = 0 then return x の部分は、「もしも y が 0 と等しいなら、戻り値 として x を返す」でしょう。「戻り値」とは、関数の処理結果として返される値です。

そして、else return f ( y, x mod y ) の部分は、「そうでなければ、引数を y と x mod y( x を y で割った余り)に変えて、再び 関数 f を呼び出す」でしょう。「引数(ひきすう)」とは、関数のカッコの中に指定される値です。

ここでは、関数 f の処理の中で、再び 関数 f が呼び出され、それによって処理が繰り返されます。これを「再帰呼び出し」と呼ぶことも覚えておいてください。

 

プログラミング言語もどきの意味がわかったら、自分がコンピュータになったつもりで、処理の流れとデータの変化をトレース(追いかけること)してみましょう。

以下のようになり、最終的に 31 という値が得られます。正解は、イです。

解答 イ

 

プログラミング言語もどき、何となくわかりましたね。なお、念のために説明しておくと、この 関数 f は、最大公約数を求める処理を行っています。775 と 527 の最大公約数は、31 です。

looks_one f ( 775, 527 ) ・・・y = 0 でないので、f ( 527, 775 mod 527 ) を呼び出す。
looks_two f ( 527, 248 ) ・・・y = 0 でないので、f ( 248, 527 mod 248 ) を呼び出す。
looks_3 f ( 248, 31 ) ・・・y = 0 でないので、f ( 31, 248 mod 31 ) を呼び出す。
looks_4 f ( 31, 0 ) ・・・y = 0 なので、戻り値として x の 31 を返す。

【厳選問題 2 】
RAID 0、RAID 1、RAID 5 の仕組みを知っておこう

問 11 平成 29 年度 春期

4 T バイトのデータを格納できるように RAID 1 の外部記憶装置を構成するとき,フォーマット後の記憶容量が 1 T バイトの磁気記憶装置は少なくとも何台必要か。

ア 4  イ 5  ウ 6  エ 8

解説

RAID(レイド)は、Redundant Arrays of Inexpensive Disks(安価なディスクの冗長な配列)の略語です( I を Independent とする場合もある)。

これは、「ハードディスクが安価になったので、1 つのシステムで複数台のハードディスクを使って、何か便利なことをやろう!」というアイディア集であり、RAID 0 ~ RAID 6 があります。

「そんなにいっぱい覚えられないよ」と思ったら、RAID 0、RAID 1、RAID 5 を覚えてください。試験によく出るのは、これら3つだからです。

RAID の種類

RAID 0 とは

まず、RAID 0 から説明しましょう。

たとえば、1 つのファイルを 1 台のハードディスクに格納したら、ちょうどディスク 1 回転分のサイズになったとしましょう。ファイルを読み書きする時間は、ディスクが 1 回転する時間になります。

このファイルを半分に分割して 2 台のハードディスクに分けて格納したらどうなるでしょう。ファイルを読み書きする時間は、それぞれのハードディスクが同時に半回転する時間になります。つまり、時間が 1/2 になります。

これが、RAID 0 のアイディアです。

0 という番号になっているのは、その他の番号の RAID のアイディアが信頼性を向上するものであるのに対し、RAID 0 だけは処理を速くするものだからです。「信頼性の向上はゼロだよ」というわけです。

RAID 1 とは

次に、RAID 1 です。これには「ミラーリング(mirror=鏡)」という別名があります。

この別名が示すように、複数台のハードディスクに同じデータ(鏡に映ったように同じデータ)を書き込むというアイディアです。

たとえば、2 台のハードディスクに同じデータを書き込めば、どちらか一方が故障しても、データを失うことはありません。もう一方のハードディスクに同じものがあるのですから。このアイディアは、とても簡単ですね。

RAID 5 とは

最後に、RAID 5 です。

RAID 0 とRAID 1 は、最低 2 台のハードディスクがあれば実現できますが、RAID 5 は、最低 3 台のハードディスクが必要になります。

それぞれのハードディスクの内容をいくつかのブロックに分けて、2 台のハードディスクのブロックの内容を XOR 演算した結果を、別の 1 台のハードディスクのブロックに書き込みます。

これによって、どれか 1 台が故障しても、他の 2 台でデータを復元できます。

たとえば、以下の構成で、ハードディスク C が故障した場合には、

ハードディスク A にある「 b2 XOR c1 」とハードディスク B にある「データ b2 」で、
ハードディスク C の「データ c1 」を復元でき、
ハードディスク B にある「 c2 XOR a2 」とハードディスク A にある「データ a2 」で、
ハードディスク C の「データ c2 」を復元できます。

( b2 XOR c1 )XOR b2 = c1 という演算で c1 が求められ、
( c2 XOR a2 )XOR a2 = c2 という演算で c2 が求められるからです。

RAID 5 の例

これで、RAID 0、RAID 1、RAID 5 のアイディアがわかりましたね。

 

それでは、問題を見てみましょう。RAID 1 つまり ミラーリング に関する問題です。

4 T バイトのデータをミラーリングするのですから、少なくとも 8 T バイトの記憶容量が必要です。ここでは、外部記憶装置(ハードディスクのこと)の記憶容量が 1 T バイトなのですから、少なくとも 8 台が必要です。

正解は、エです。

解答

「この問題、超簡単じゃん!」と思ったなら、それは RAID 1 のアイディアを覚えたからですよ。

search ディスク に関する他の記事や問題をチェック

【厳選問題 3 】
直列と並列の稼働率の求め方は、丸暗記ではなく理屈で覚えよう

問 14 平成 29 年度 春期

稼働率 R の装置を図のように接続したシステムがある。このシステム全体の稼働率を表す式はどれか。ここで,並列に接続されている部分はどちらかの装置が稼働していればよく、直列に接続されている部分は両方の装置が稼働していなければならない。

ア ( 1 – (1 – R2 ) )2  イ 1 – ( 1 – R2 )2
ウ ( 1 – (1 – R )2 )2  エ 1 – ( 1 – R )4

解説

稼働率の問題は、とにかくよく出ます。

どんな問題が出ても大丈夫なように、稼働率の求め方をしっかり覚えておきましょう。

そのための基礎知識となるのは、2 台の装置が直列に接続されたシステムと、並列に接続されたシステムの稼働率の求め方です。

これらを、丸暗記ではなく理屈で覚えてください。

 

以下は、稼働率 R の 2 台の装置が 直列 に接続されたシステムです。

直列は、2 台の装置の両方が動作していないと、システムが稼働しないことを意味します。

この場合のシステムの稼働率は、1 台目の装置が動作し、かつ、2 台目の装置が動作する確率なので、それぞれの稼働率を掛けた R × R = R2 になります。

稼働率 R の 2 台の装置が 直列 に接続されたシステム

以下は、稼働率 R の 2 台の装置が 並列 に接続されたシステムです。

並列は、2 台の装置の少なくともどちらか一方が動作していれば、システムが稼働することを意味します。

この場合のシステムの稼働率は、

( 2 台の装置の少なくともどちらか一方が動作する確率 ) = 1 – ( 2 台の装置が同時に故障する確率 )

と考えて計算します。この 1 は、100 % を意味しています。

稼働率 R の装置は、1 – R の確率で故障します。

2 台の装置が同時に故障する確率は、 1 台目の装置が故障し、かつ、2 台目の装置が故障する確率 なので、それぞれを掛けた

( 1 – R ) × ( 1 – R ) = ( 1 – R )2

です。

したがって、このシステムの稼働率は、1 – ( 1 – R )2 です。ここまでが基礎知識です。

ご理解いただけたでしょうか?

稼働率 R の 2 台の装置が 並列 に接続されたシステム

 

それでは、問題を見てみましょう。

複雑なシステム構成になっていると思うかもしれませんが、どんなシステム構成も直列と並列に分解できるので、先ほどの基礎知識があれば稼働率を求められます。

このシステムは、稼働率 R の 2 台の装置が 並列 になっている部分が 2 つあり、それらが 直列 になっています。

稼働率 R の 2 台の装置が 並列 になっている部分の稼働率は、それぞれ 1 – ( 1 – R )2 です。

それらを直列にしたシステム全体の稼働率は、

( 1 – ( 1 – R )2 ) ×( 1 – ( 1 – R )2 ) = ( 1 – ( 1 – R )2 )2

です。正解は、ウです。

解答

label 計算問題をわかりやすく解説する連載はじまりました!

稼働率の計算方法がわかる|かんたん計算問題

【厳選問題 4 】
基本情報技術者試験には、公式の暗記が必要な問題は出題されません

問 17 平成 29 年度 春期

図の送信タスクから受信タスクに T 秒間連続してデータを送信する。1 秒当たりの送信量を S,1 秒当たりの受信量を R としたとき,バッファがオーバフローしないバッファサイズ L を表す関係式として適切なものはどれか。ここで,受信タスクよりも送信タスクの方が転送速度は速く,次の転送開始までの時間間隔は十分にあるものとする。

ア L < ( R-S ) × T  イ L < ( S-R ) × T
ウ L ≧ ( R-S ) × T  エ L ≧ ( S-R ) × T

解説

選択肢を見て「こんな公式なんて知らないよ!」と思ったかもしれませんが、それは誤解です。なぜなら、基本情報技術者試験には、公式の暗記が必要な問題が出題されたことがないからです。

したがって、一見して公式っぽいものが示されていても、問題を読めば計算式を見出すことができます。恐れずにやってみましょう。

「送信タスク」とは、データを送るプログラムのことで、
「受信タスク」とは、データを受け取るプログラムのことです。
「バッファ」とは、すぐに処理しないデータを格納しておく記憶領域です。
「オーバーフロー」とは、バッファからデータがあふれてしまうことです。

問題文に「受信タスクより送信タスクの方が、転送速度が速い」と示されているので、そのままでは受信の処理が間に合いません。

そのため、バッファを使って、すぐに受信できないデータを格納しておくのです。

 

1 秒あたり送信量 は S で、1 秒あたりの受信量 は R です。受信より送信の方が速いのですから、S > R です。
したがって、1 秒あたり S – R のデータの処理が間に合いません。

ここでは、T 秒間 連続してデータを送るのですから、( S – R )× T のデータの処理が間に合いません。

これをバッファに格納するのですから、バッファのサイズ L は、( S – R )× T 以上でなければなりません。

式で表すと

L ≧ ( S – R )× T

です。正解は、エです。

解説

どうです。恐れずにやってみれば、意外と簡単な問題だったでしょう!

【厳選問題 5 】
自分流に工夫して OSI 基本参照モデルとネットワーク機器の対応を覚えよう

問 31 平成 29 年度 春期

OSI 基本参照モデルのトランスポート層以上が異なる LAN システム相互間でプロトコル変換を行う機器はどれか。

ア ゲートウェイ  イ ブリッジ  ウ リピータ  エ ルータ

解説

ネットワーク機器である「リピータ」「ブリッジ」「ルータ」「ゲートウェイ」は、拙著「出るとこだけ! 基本情報技術者テキスト&問題集」に掲載した「試験によく出る問題と用語 Top 100 」で、よく出る用語の第 1 位になっています。

これらの用語は、OSI 基本参照モデルと対応付けて出題されます。

以下に対応を示します。問題には「トランスポート層以上」とあるので、ゲートウェイが適切です。正解は、アです。

と言ってしまえば簡単なのですが、悩ましいのは、OSI 基本参照モデルとネットワーク機器を、どうやって対応付けて覚えるかです。

OSI 基本参照モデルとネットワーク機器の対応
第 7 層 応用層 (アプリケーション層) ゲートウェイ
第 6 層 プレゼンテーション層
第 5 層 セッション層
第 4 層 トランスポート層
第 3 層 ネットワーク層 ルータ
第 2 層 データリンク層 ブリッジ
第 1 層 物理層 リピータ

自分流に覚え方を工夫しましょう。例を示します。

 

ルータ がインターネットにおける中継装置 であることをご存知でしょう。

インターネットの中継は、ネットワーク層 です。したがって、ルータ は、ネットワーク層 の機器です。

 

データリンク層 は、インターネットに出て行く前の LAN のレベルです。大規模な LAN は、橋を架けるようにして区切ることができます。

橋を英語で「ブリッジ」と呼ぶので、ブリッジ は、データリンク層 の機器です。

 

リピータ は、その名前が示す通り、データをリピート(そのまま伝える)だけです。

長いネットワークケーブルを通って電気が弱まったデータを、もとの強さに回復させてリピートします。

中継するのではなく、物理的に元気にするだけです。だから リピータ は、物理層 の機器です。

 

基本情報技術者試験の午前問題は、すべて四択です。

ルータ、ブリッジ、リピータの 3 個では、選択肢が足りません。そこで、あまり一般的ではありませんが、ゲートウェイという選択肢を追加しています。

ゲートウェイは、OSI 基本参照モデルの 1 つの階層に対応するのではなく、複数の階層にまたがって幅広くプロトコルを変換します。

ネットワーク層、データリンク層、物理層には、それぞれルータ、ブリッジ、リピータという機器があります。

そのため、ゲートウェイは、トランスポート層以上の階層に対応するとされます。

この問題は、「トランスポート層以上」ということなのでゲートウェイが適切です。

 

正解は、アです。

解答

search OSI 参照モデル に関する他の記事や問題をチェック

記事をお読みいただきありがとうございます。

もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。「やるべき問題」は、「わかるまでやるべき問題」だからです。

この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。

 

label 関連タグ
実は、午前試験を『免除』できます 独習ゼミで午前免除試験を受けた 85% の方が、
午前分野を免除しています。
2020年 6月 12日 12時
締め切り間近!!
alarm2020年 6月 12日 12時締切!

詳しく見てみるplay_circle_filled
label これまでの『厳選5題 過去問と解説』の連載一覧 label 著者

『プログラムはなぜ動くのか』(日経BP)が大ベストセラー
IT技術を楽しく・分かりやすく教える“自称ソフトウェア芸人”

大手電気メーカーでPCの製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。その傍ら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識0ベースのITエンジニアや一般書店フェアなどの一般的なPCユーザの講習ではダントツの評価。
お客様の満足を何よりも大切にし、わかりやすい、のせるのが上手い自称ソフトウェア芸人。

主な著作物

  • 「プログラムはなぜ動くのか」(日経BP)
  • 「コンピュータはなぜ動くのか」(日経BP)
  • 「出るとこだけ! 基本情報技術者」 (翔泳社)
  • 「ベテランが丁寧に教えてくれる ハードウェアの知識と実務」(翔泳社)
  • 「ifとelseの思考術」(ソフトバンククリエイティブ) など多数