「厳選5題」過去問と解説 | 平成23年度 春期 の過去問やるならこれをやれ
ここでは、平成 23 年度 春期 基本情報技術者試験の午前試験 の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。
やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題(練習しないとできない問題)です。
もくじ
厳選問題looks_oneこれは、ド・モルガンの法則だ!
論理式 と等しいものはどれか。 ここで,・は論理積,+ は論理和,X は X の否定を表す。
ア A・B + A・C
イ A・B + A・C
ウ ( A + B )・( A + C )
エ ( A + B )・( A + C )
「問題文に示された論理式と等しい論理式を、選択肢の中から選べ」という問題です。 この手の問題を解くには、以下の 3 つの方法があります。
- 変数に具体的な値(真と偽)を想定して、同じ演算結果になるものを選ぶ
- ベン図を書いて、同じ領域になるものを選ぶ
- 問題文に示された論理式を変形して、選択肢と同じ形にする
どの方法でも問題を解くことができますが、効率的に解ける方法を選ぶべきです。
この問題は、「ド・モルガンの法則」を知っていれば、「3. 問題文に示された論理式を変形して、選択肢と同じ形にする」が効率的だと気付くはずです。
ド・モルガンの法則を堅苦しく示すと、以下のようになります。
ここでは、問題に合わせて、AND(かつ)を ・ 、OR(または) + 、NOT(でない)を  ̄ で表しています。
ド・モルガンの法則
A ・ B = A + B
A + B = A ・ B
このような堅苦しい式を見ると「こんなの覚えられないよ!」と思うでしょう。 ご安心ください。
ド・モルガンの法則は、人間の自然な感覚として理解できるものです。
式の A に「イケメン」、B に「金持ち」という具体例を入れてみましょう。
以下のようになります。 いかがですか? 「なんだ、当たり前のことじゃないか!」と納得していただけるでしょう。
それでは、問題を解いてみましょう。
問題文に示された論理式を、ド・モルガンの法則を使って変形すると、以下のようになります。
= +
= B ) + ( A + +
= ( A + B ) + ( A ・ C )
= A ・ B + A ・ C
バーが二重になったときは、否定の否定なので、バーを取ることができます。
・ 演算の方が + 演算より優先順位が高いので、・ 演算を囲むカッコは不要です。
変形した結果は、選択肢アと同じ式になりました。 アが正解です。
解答 ア
label 関連タグ: 論理式
厳選問題looks_two状態遷移表で文字列の形式を検査する方法を覚えておこう!
次の表は,文字列を検査するための状態遷移表である。 検査では,初期状態を a とし,文字列の検査中に状態が e になれば不合格とする。
解答群で示される文字列のうち,不合格となるものはどれか。 ここで,文字列は左端から検査し,解答群中の△は空白を表す。
ア +0010 イ -1 ウ 12.2 エ 9.△
この問題を初めて見た人は、「いったい何がいいたいのかわからない?」と思うでしょう。
この問題は、「与えられた文字列が、特定の形式に合致しているかどうかを、状態遷移意表を使って検査する」というものです。
初期状態が a であり、文字列の検査中に状態が e になったら不合格です(つまり、最後まで検査して e にならなければ合格です)。
あれこれ言葉で説明するより、実際にやってみた方が理解が早いでしょう。
ここでは、選択肢アの「 +0010 」を検査してみます。
この文字列を左から右に向かって 1 文字ずつ取り出し、その文字の種類に応じて状態を遷移させます。
以下では、現在どの状態にいるのかを、状態を ○ で囲んで示します。 初期状態は a なので、a を panorama_fish_eye で囲みます。
「 +0010 」の最初の文字は「 + 」という「符号」なので、表を右にたどって、状態 c に遷移することがわかります。
状態 c に遷移して、「 +0010 」の次の文字は「 0 」という「数字」です。
表を右にたどって、状態 b に遷移することがわかります。
状態 b に遷移して、「 +0010 」の次の文字は「 0 」という「数字」です。
表を右にたどって、状態 b に遷移する(同じ状態のままにする)ことがわかります。
「 +0010 」のこの後の文字も「 1 」と「 0 」という数字なので、最後の文字を取り出したときの状態は b です。
状態が e にならなかったので、この文字列は合格です。 いかがですか?
「与えられた文字列が、特定の形式に合致しているかどうかを、状態遷移意表を使って検査する」ということの意味を、ご理解いただけたでしょう。
同様の方法で、選択肢イの「 -1 」を検査すると、最後の文字を取り出したときの状態は b になります(合格です)。
選択肢ウの「 12.2 」を検査すると、最後の文字を取り出したときの状態は e になります(不合格です)。
選択肢エの「 9.△ 」を検査すると、最後の文字を取り出したときの状態は a になります(合格です)。
したがって、ウが正解です。
解答 ウ
厳選問題looks_3伸びて行くから「木」なのです!
空の 2 分探索木に,8,12, 5, 3,10,7, 6 の順にデータを与えたときにできる 2 分探索木はどれか。 ア パスワードに対応する利用者 ID のハッシュ値を登録しておき,認証時に入力された利用者 ID をハッシュ関数で変換して参照した登録パスワードと入力パスワードを比較する。
二分探索木は、1 つのデータが 2 つに枝分かれして、より小さいデータを左側に、より大きいデータを右側につないだものです。
枝分かれするので木なのですが、もう 1 つ、木らしい特徴があります。
それは、データを与えることで、徐々に伸びていくことです。
この問題では、8 、12 、5 、3 、10 、7 、6 の順にデータが与えられます。 これによって、以下の手順で木が伸びていきます。
図 データを与えることで木が伸びていく
最後のデータの 6 を与えた時点で、選択肢エと同じ形状の木になりました。 エが正解です。
解答 エ
厳選問題looks_4計算問題への苦手意識を克服しよう!(その 1 )
Web サーバとデータベースサーパ各 1 台で構成されているシステムがある。 次の運用条件の場合,このシステムでは最大何 TPS 処理できるか。 ここで,各サーバの CPU は, 1 個とする。
〔運用条件〕
- トランザクションは,Web サーバを経由し,データベースサーバで SQL が実行される。
- Web サーバでは,1 トランザクション当たり,CPU 時間を1ミリ秒使用する。
- データベースサーバでは,1 トランザクション当たり,データベースの 10 データブロックにアクセスする SQL が実行される。 1 データブロックのアクセスに必要なデータベースサーバの CPU 時間は,0.2 ミリ秒である。
- CPU 使用率の上限は,Web サーバが 70 % ,データベースサーバが 80 % である。
- トランザクション処理は,CPU 時間だけに依存し,Web サーバとデータベースサーバは互いに独立して処理を行うものとする。
ア 400 イ 500 ウ 700 エ 1,100
筆者の講師経験上、「計算問題が苦手です!」という人が多いようです。 しかし、それは多くの場合、誤解です。
基本情報技術者試験の計算問題を解くために、特殊な計算式を知っている必要はなく、複雑な計算も要求されないからです。 どの問題も「仕組みを知っていれば計算できるよね!」という趣旨のものです。 問題が解けないのは、計算が苦手だからではなく、仕組みを知らないからです。
それに気付いて、苦手意識を克服していただくために、この問題を解いてみましょう。
「 TPS って何だか知っていますか?」
「システムの性能は、ボトルネックとなる部分(最も遅い部分)で決まることを知っていますか?」
という問題です。
まず、Web サーバーの TPS ( Transactions Per Second 、1 秒間に処理できるトランザクションの数) を求めてみましょう。
1トランザクション当たり CPU 時間を 1 ミリ秒を使用するのですから、
です。
ただし、CPU 使用率の上限が 70 % なので、実際には、
になります。
次に、データベースサーバの TPS を求めてみましょう。
- 1 トランザクション当たり、データベースの 10 ブロックにアクセスする SQL を実行し、
- 1 データブロックのアクセスに必要なCPU 時間が 0.2 ミリ秒なので、
- 1 トランザクション当たり 10 × 0.2 ミリ秒 = 2 ミリ秒の CPU 時間を使います。
TPS は、1 秒 ÷ 2 ミリ秒 = 500 TPS ですが、CPU 使用率の上限が 80 % なので、実際には、
になります。
Web サーバが 700 TPS で、データベースサーバが 400 TPS なので、遅い方のデータベースサーバがボトルネックとなって、このシステムの性能は、400 TPS です。 アが正解です。
いかがですか? 計算が難しいのではなく、仕組みを知っているかどうかがポイントですね。
解答 ア
厳選問題looks_5計算問題への苦手意識を克服しよう!(その 2 )
Java などのバイトコードプログラムをインタプリタで実行する方法と,コンパイルしてから実行する方法を次の条件で比較するとき,およそ何行以上のバイトコードであれば,コンパイル方式の方がインタプリタ方式よりも処理時間 (コンパイル時間も含む) が短くなるか。
〔条件〕
- 実行時間はプログラムの行数に比例する。
- 同じ 100 行のパイトコードのプログラムをインタプリタで実行すると 0.2 秒掛かり,コンパイルしてから実行すると 0.003 秒掛かる。
- コンパイル時間は 100 行当たり 0.1 秒掛かる。
- コンパイル方式の場合は,プログラムの行数に関係なくファイル入出力,コンパイラ起動などのために常に 0.15 秒のオーバヘッドが掛かる。
- プログラムファイルのダウンロード時間など,そのほかの時間は無視して考える。
ア 50 イ 75 ウ 125 エ 155
計算問題への苦手意識を克服するために、もう 1 問やってみましょう。
これは、
「インタプリタで実行する場合と、コンパイラで実行する場合で、それぞれに必要とされる時間を知っていますか?」
という問題です。
バイトコードの行数を b 行( b は、バイトコードの頭文字です)として、それぞれの実行時間を求めてみましょう。
インタプリタで実行する場合に必要とされるのは、コードの解釈・実行時間だけです。
ここでは、
100 行のバイトコードあたり 0.2 秒かかるので、 b 行では、
かかります。
コンパイラで実行する場合に必要とされるのは、コンパイル時間、実行時間、その他のオーバーヘッドの時間です。
- コンパイル時間
- 100 行当たり 0.1 秒かかる
- b 行では、( b / 100 ) × 0.1 秒かかる
- 実行時間
- 100 行当たり 0.003 秒
- b 行では、( b / 100 ) × 0.003 秒かかる
- その他のオーバーヘッドの時間
- 行数に関係なく 0.15 秒かかる
以上を合計すると、
になります。
この問題は、「コンパイラの処理時間 < インタプリタの処理時間」となる行数を求めるものなので、以下の不等式を解いて、
b > 154.6・・・
となります。 したがって、エの 155 が正解です。
解答 エ
記事をお読みいただきありがとうございます。
もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。 「やるべき問題」は「わかるまでやるべき問題」だからです。
この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。
label 関連タグ
免除試験を受けた 74.9% の方が、 科目A免除資格を得ています。
「厳選5題」過去問と解説|令和元年度 秋期 の過去問やるならこれをやれ
update「厳選5題」過去問と解説|平成31年度 春期 の過去問やるならこれをやれ
update「厳選5題」過去問と解説|平成21年度 秋期 の過去問やるならこれをやれ
update「厳選5題」過去問と解説 | 平成22年度 春期 の過去問やるならこれをやれ
update「厳選5題」過去問と解説 | 平成22年度 秋期 の過去問やるならこれをやれ
update「厳選5題」過去問と解説 | 平成23年度 春期 の過去問やるならこれをやれ
update「厳選5題」過去問と解説 | 平成23年度 秋期 の過去問やるならこれをやれ
update「厳選5題」過去問と解説 | 平成24年度 春期 の過去問やるならこれをやれ
update「厳選5題」過去問と解説 | 平成24年度 秋期 の過去問やるならこれをやれ
update「厳選5題」過去問と解説 | 平成25年度 春期 の過去問やるならこれをやれ
update『プログラムはなぜ動くのか』(日経BP)が大ベストセラー
IT技術を楽しく・分かりやすく教える“自称ソフトウェア芸人”
大手電気メーカーでPCの製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。その傍ら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識0ベースのITエンジニアや一般書店フェアなどの一般的なPCユーザの講習ではダントツの評価。
お客様の満足を何よりも大切にし、わかりやすい、のせるのが上手い自称ソフトウェア芸人。
主な著作物
- 「プログラムはなぜ動くのか」(日経BP)
- 「コンピュータはなぜ動くのか」(日経BP)
- 「出るとこだけ! 基本情報技術者」 (翔泳社)
- 「ベテランが丁寧に教えてくれる ハードウェアの知識と実務」(翔泳社)
- 「ifとelseの思考術」(ソフトバンククリエイティブ) など多数