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


2020-03-04 更新

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

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

 

【厳選問題 1 】

これは、ド・モルガンの法則だ!

問 1 (平成 23 年度 春期)

論理式 ( A + B )・( A + C ) と等しいものはどれか。ここで,・は論理積,+ は論理和,XX の否定を表す。

ア A・B + A・C  
イ A・B + A・C
ウ  ( A + B )・( A + C )  
エ ( A + B )・( A + C )

解説

「問題文に示された論理式と等しい論理式を、選択肢の中から選べ」という問題です。この手の問題を解くには、以下の 3 つの方法があります。

  1. 変数に具体的な値(真と偽)を想定して、同じ演算結果になるものを選ぶ
  2. ベン図を書いて、同じ領域になるものを選ぶ
  3. 問題文に示された論理式を変形して、選択肢と同じ形にする

どの方法でも問題を解くことができますが、効率的に解ける方法を選ぶべきです。

 

この問題は、「ド・モルガンの法則」を知っていれば、「3. 問題文に示された論理式を変形して、選択肢と同じ形にする」が効率的だと気付くはずです。

ド・モルガンの法則を堅苦しく示すと、以下のようになります。

ここでは、問題に合わせて、AND(かつ)を ・ 、OR(または) + 、NOT(でない)を  ̄ で表しています。

図 ド・モルガンの法則

A ・ BAB

A + BAB

このような堅苦しい式を見ると「こんなの覚えられないよ!」と思うでしょう。ご安心ください。

ド・モルガンの法則は、人間の自然な感覚として理解できるものです。

 

式の A に「イケメン」、B に「金持ち」という具体例を入れてみましょう。

以下のようになります。いかがですか? 「なんだ、当たり前のことじゃないか!」と納得していただけるでしょう。

図 具体例を入れたド・モルガンの法則

 

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

問題文に示された論理式を、ド・モルガンの法則を使って変形すると、以下のようになります。

図 問題文に示された論理式を、ド・モルガンの法則を使って変形する

( A + B )・( A + C )

= ( A + B )( A + C )

= ( A + B ) + ( A + C )

= ( A + B ) + ( A ・ C )

= A ・ BA ・ C

バーが二重になったときは、否定の否定なので、バーを取ることができます。
・ 演算の方が + 演算より優先順位が高いので、・ 演算を囲むカッコは不要です。

変形した結果は、選択肢アと同じ式になりました。アが正解です。

 

解答

 

label 関連タグ: 論理式

 

【厳選問題 2 】

状態遷移表で文字列の形式を検査する方法を覚えておこう!

問 4 (平成 23 年度 春期)

次の表は,文字列を検査するための状態遷移表である。検査では,初期状態を a とし,文字列の検査中に状態が e になれば不合格とする。

解答群で示される文字列のうち,不合格となるものはどれか。ここで,文字列は左端から検査し,解答群中の△は空白を表す。

ア +0010  イ -1  ウ 12.2  エ 9.△

解説

この問題を初めて見た人は、「いったい何がいいたいのかわからない?」と思うでしょう。

この問題は、「与えられた文字列が、特定の形式に合致しているかどうかを、状態遷移意表を使って検査する」というものです。

初期状態が a であり、文字列の検査中に状態が e になったら不合格です(つまり、最後まで検査して e にならなければ合格です)。

あれこれ言葉で説明するより、実際にやってみた方が理解が早いでしょう。

 

ここでは、選択肢アの「 +0010 」を検査してみます。

この文字列を左から右に向かって 1 文字ずつ取り出し、その文字の種類に応じて状態を遷移させます。

以下では、現在どの状態にいるのかを、状態を ○ で囲んで示します。初期状態は a なので、a を panorama_fish_eye で囲みます。

図 初期状態は a である

「 +0010 」の最初の文字は「 + 」という「符号」なので、表を右にたどって、状態 c に遷移することがわかります。

図 状態 a で「 + 」という「符号」なので状態 c に遷移する

状態 c に遷移して、「 +0010 」の次の文字は「 0 」という「数字」です。
表を右にたどって、状態 b に遷移することがわかります。

状態 c で「 0 」という「数字」なので状態 b に遷移する

状態 b に遷移して、「 +0010 」の次の文字は「 0 」という「数字」です。
表を右にたどって、状態 b に遷移する(同じ状態のままにする)ことがわかります。

状態 b で「 0 」という「数字」なので状態 b に遷移する(同じ状態のままにする)

「 +0010 」のこの後の文字も「 1 」と「 0 」という数字なので、最後の文字を取り出したときの状態は b です。

状態が e にならなかったので、この文字列は合格です。いかがですか?

「与えられた文字列が、特定の形式に合致しているかどうかを、状態遷移意表を使って検査する」ということの意味を、ご理解いただけたでしょう。

 

同様の方法で、選択肢イの「 -1 」を検査すると、最後の文字を取り出したときの状態は b になります(合格です)。
選択肢ウの「 12.2 」を検査すると、最後の文字を取り出したときの状態は e になります(不合格です)。
選択肢エの「 9.△ 」を検査すると、最後の文字を取り出したときの状態は a になります(合格です)。

したがって、ウが正解です。

 

解答

 

【厳選問題 3 】

伸びて行くから「木」なのです!

問 5 (平成 23 年度 春期)

空の 2 分探索木に,8,12, 5, 3,10,7, 6 の順にデータを与えたときにできる 2 分探索木はどれか。ア パスワードに対応する利用者 ID のハッシュ値を登録しておき,認証時に入力された利用者 ID をハッシュ関数で変換して参照した登録パスワードと入力パスワードを比較する。





解説

二分探索木は、1 つのデータが 2 つに枝分かれして、より小さいデータを左側に、より大きいデータを右側につないだものです。

枝分かれするので木なのですが、もう 1 つ、木らしい特徴があります。

それは、データを与えることで、徐々に伸びていくことです。

この問題では、8 、12 、5 、3 、10 、7 、6 の順にデータが与えられます。これによって、以下の手順で木が伸びていきます。

図 データを与えることで木が伸びていく

手順1. 8 を与える
手順2. 12 を与える
手順3. 5 を与える
手順4. 3 を与える
手順5. 10 を与える
手順6. 7 を与える
手順7. 6 を与える

最後のデータの 6 を与えた時点で、選択肢エと同じ形状の木になりました。エが正解です。

 

解答

 

【厳選問題 4 】

計算問題への苦手意識を克服しよう!(その 1 )

問 19 (平成 23 年度 春期)

Web サーバとデータベースサーパ各 1 台で構成されているシステムがある。次の運用条件の場合,このシステムでは最大何 TPS 処理できるか。ここで,各サーバの CPU は,1 個とする。

〔運用条件〕

  1. トランザクションは,Web サーバを経由し,データベースサーバで SQL が実行される。
  2. Web サーバでは,1 トランザクション当たり,CPU 時間を1ミリ秒使用する。
  3. データベースサーバでは,1 トランザクション当たり,データベースの 10 データブロックにアクセスする SQL が実行される。1 データブロックのアクセスに必要なデータベースサーバの CPU 時間は,0.2 ミリ秒である。
  4. CPU 使用率の上限は,Web サーバが 70 % ,データベースサーバが 80 % である。
  5. トランザクション処理は,CPU 時間だけに依存し,Web サーバとデータベースサーバは互いに独立して処理を行うものとする。

ア 400  イ 500  ウ 700  エ 1,100

解説

筆者の講師経験上、「計算問題が苦手です!」という人が多いようです。しかし、それは多くの場合、誤解です。

基本情報技術者試験の計算問題を解くために、特殊な計算式を知っている必要はなく、複雑な計算も要求されないからです。

どの問題も「仕組みを知っていれば計算できるよね!」という趣旨のものです。問題が解けないのは、計算が苦手だからではなく、仕組みを知らないからです。

それに気付いて、苦手意識を克服していただくために、この問題を解いてみましょう。

 

「 TPS って何だか知っていますか?」
「システムの性能は、ボトルネックとなる部分(最も遅い部分)で決まることを知っていますか?」

という問題です。

まず、Web サーバーの TPS ( Transactions Per Second 、1 秒間に処理できるトランザクションの数) を求めてみましょう。

1トランザクション当たり CPU 時間を 1 ミリ秒を使用するのですから、
1 秒 ÷ 1 ミリ秒 = 1000 TPS です。

ただし、CPU 使用率の上限が 70 % なので、実際には、
1000 TPS × 0.7 = 700TPS になります。

次に、データベースサーバの TPS を求めてみましょう。

1 トランザクション当たり、データベースの 10 ブロックにアクセスする SQL を実行し、
1 データブロックのアクセスに必要なCPU 時間が 0.2 ミリ秒なので、
1 トランザクション当たり 10 × 0.2 ミリ秒 = 2 ミリ秒の CPU 時間を使います。

TPS は、1 秒 ÷ 2 ミリ秒 = 500 TPS ですが、CPU 使用率の上限が 80 %なので、実際には、
500 TPS × 0.8 = 400 TPS になります。

Web サーバが 700 TPS で、データベースサーバが 400 TPS なので、遅い方のデータベースサーバがボトルネックとなって、このシステムの性能は、400 TPS です。アが正解です。

いかがですか? 計算が難しいのではなく、仕組みを知っているかどうかがポイントですね。

 

解答

 

【厳選問題 5 】

計算問題への苦手意識を克服しよう!(その 2 )

問 23 (平成 23 年度 春期)

Java などのバイトコードプログラムをインタプリタで実行する方法と,コンパイルしてから実行する方法を次の条件で比較するとき,およそ何行以上のバイトコードであれば,コンパイル方式の方がインタプリタ方式よりも処理時間 (コンパイル時間も含む) が短くなるか。

〔条件〕

  1. 実行時間はプログラムの行数に比例する。
  2. 同じ 100 行のパイトコードのプログラムをインタプリタで実行すると 0.2 秒掛かり,コンパイルしてから実行すると 0.003 秒掛かる。
  3. コンパイル時間は 100 行当たり 0.1 秒掛かる。
  4. コンパイル方式の場合は,プログラムの行数に関係なくファイル入出力,コンパイラ起動などのために常に 0.15 秒のオーバヘッドが掛かる。
  5. プログラムファイルのダウンロード時間など,そのほかの時間は無視して考える。

ア 50  イ 75  ウ 125  エ 155

解説

計算問題への苦手意識を克服するために、もう 1 問やってみましょう。

これは、「インタプリタで実行する場合と、コンパイラで実行する場合で、それぞれに必要とされる時間を知っていますか?」という問題です。

バイトコードの行数を b 行( b は、バイトコードの頭文字です)として、それぞれの実行時間を求めてみましょう。

 

インタプリタで実行する場合に必要とされるのは、コードの解釈・実行時間だけです。

ここでは、

100 行のバイトコードあたり 0.2 秒かかるので、
b 行では、( b / 100 ) × 0.2 秒かかります。

コンパイラで実行する場合に必要とされるのは、コンパイル時間、実行時間、その他のオーバーヘッドの時間です。

ここでは、

コンパイル時間が 100 行当たり 0.1 秒かかるので、
b 行では、( b / 100 ) × 0.1 秒かかります。

実行時間は、100 行当たり 0.003 秒なので、
b 行では、( b / 100 ) × 0.003 秒かかります。

その他のオーバーヘッドの時間は、行数に関係なく 0.15 秒かかります。

以上を合計すると、( b / 100 ) × 0.1 秒 + ( b / 100 ) × 0.003 秒 + 0.15 秒になります。

 

この問題は、「コンパイラの処理時間 < インタプリタの処理時間」となる行数を求めるものなので、以下の不等式を解いて、

( b / 100 ) × 0.1 秒 + ( b / 100 ) × 0.003 秒 + 0.15 秒 < ( b / 100 ) × 0.2 秒
b > 154.6・・・

となります。したがって、エの 155 が正解です。

 

解答

 

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

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

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

 

label 関連タグ
実は、午前試験を『免除』できます 独習ゼミで午前免除試験を受けた 86% の方が、
午前分野を免除しています。
2021 年度 春期試験 向け
最大20%OFF!
2021年度 春期試験向け
最大20%OFF!

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

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

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

主な著作物

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

grade IPA認定
午前免除制度対応
eラーニング

人気記事

人気のタグ