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


2020-03-04 更新

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

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

厳選問題looks_oneこれは、ド・モルガンの法則だ!

問 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 ・ BA + B

A + BAB

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

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

 

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

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

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

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

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

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

( A + B )・( A + C )

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

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

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

= A ・ B + A ・ C

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

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

 

解答 ア

 

label 関連タグ: 論理式

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

問 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 になります(合格です)。

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

 

解答 ウ

厳選問題looks_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 を与えた時点で、選択肢エと同じ形状の木になりました。 エが正解です。

 

解答 エ

厳選問題looks_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 = 700 TPS

になります。

 

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

  1. 1 トランザクション当たり、データベースの 10 ブロックにアクセスする SQL を実行し、
  2. 1 データブロックのアクセスに必要なCPU 時間が 0.2 ミリ秒なので、
  3. 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 です。 アが正解です。

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

 

解答 ア

厳選問題looks_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 関連タグ
科目A試験は、
免除できます。
独習ゼミで科目A試験を1年間免除して、科目B試験だけに集中しましょう。
免除試験を受けた 74.9% の方が、
科目A免除資格を得ています。
科目A免除試験 最大 2 回の
受験チャンス !
info_outline
科目A免除試験 最大 2 回の
受験チャンス !
詳しく見てみるplay_circle_filled
label これまでの『厳選5題 過去問と解説』の連載一覧 label 著者