
【備忘メモ】基本情報技術者試験・個人的に間違えやすそうな問題①
お疲れ様です。英知契(えいちけい)です。
今月末、事情あって(応用情報が惜しくも撃沈したため)急遽基本情報技術者試験を受けることになったので、メモ代わりとして勉強中に実際に間違えた問題や皆さんが間違えやすそうな問題をシェアしていきます。
初回なので、とりあえずノージャンルで3問だけ。
問題と答えだけでなく、なぜ間違えそうなのかも書いてみます。(ほぼメモです)
不定期かつ気まぐれかつ試験的な投稿なので、温かい目で見守ってやってください。
基本情報技術者試験を今後受験される皆さんにとっても参考になれば幸いです。
第1問:
機械学習における教師あり学習の説明として、最も適切なものはどれか。
分類:テクノロジ系、基礎理論、情報に関する理論
【ポイント】強化学習と教師あり学習の違いが説明できるかどうか。
ア:個々の行動に対しての善しあしを得点として与えることによって,得点が最も多く得られるような方策を学習する。
イ:コンピュータ利用者の挙動データを蓄積し,挙動データの出現頻度に従って次の挙動を推論する。
ウ:正解のデータを提示したり,データが誤りであることを指摘したりすることによって,未知のデータに対して正誤を得ることを助ける。
エ:正解のデータを提示せずに,統計的性質や,ある種の条件によって入力パターンを判定したり,クラスタリングしたりする。
【コメント】
AIを用いた機械学習についてかなり基本的な問題ですが、正直一瞬アかウで迷いました。教師あり学習は「正解のデータ」をコンピュータにお勉強させるという特徴があるので、そのような記述がないイとエは簡単に選択肢から外せます。
ここで迷いなくウ(正解)を選んでもよいですが、アの「個々の行動に対しての善しあしを得点として与える(=強化学習の特徴)」を忘れかけているとこの問題を解いた時の私のように迷ってしまいます。
教師あり学習の特徴は掴んでいたので、そこから私は正解できましたが危うく間違えかけたのでメモとして残しておきます。
【解答】ウ
第2問:
Javaなどのバイトコードプログラムをインタプリタで実行する方法と、コンパイルしてから実行する方法を、次の条件で比較するとき、およそ何行以上のバイトコードであれば、コンパイル方式の方がインタプリタ方式よりも処理時間が短くなるか。
〔条件〕
(1) 実行時間はプログラムの行数に比例する。
(2) 同じ100行のバイトコードのプログラムをインタプリタで実行すると0.2秒かかり、コンパイルしてから実行すると0.003秒かかる。
(3) コンパイル時間は100行当たり0.1秒かかる。
(4) コンパイル方式の場合は、プログラムの行数に関係なくファイル入出力、コンパイラ起動などのために常に0.15秒のオーバヘッドがかかる。
(5) プログラムファイルのダウンロード時間など、その他の時間は無視して考える。
分類:テクノロジ系、ソフトウェア、開発ツール
【ポイント】計算問題はシンプルに嫌なんじゃあ。。。
ア:50
イ:75
ウ:125
エ:155
【コメント、解答】
シンプルに苦手なタイプの計算問題なので、備忘録としてメモ。
インタプリタ方式とコンパイラ方式の違いを抑えながら、計算問題という形で応用するタイプの問題。
まず、プログラムの行数をL(100行単位)と置いてみましょう。
インタプリタ方式は、シンプルに実行時の処理時間だけなので
インタプリタで実行すると0.2秒かかり
より、インタプリタ方式の処理時間は
0.2 x L = 0.2L(インタプリタ方式の処理時間)
と求められます。
コンパイラ方式は、実行時の処理時間に加えてコンパイル時間とオーバーヘッド時間(コンピューターや半導体などで、処理を実行する際に発生する付加的な作業や、その作業にかかる時間)がかかるので、
コンパイルしてから実行すると0.003秒かかる。
コンパイル時間は100行当たり0.1秒かかる。
コンパイラ起動などのために常に0.15秒のオーバヘッドがかかる。
上記より、コンパイラ方式の処理時間は
0.1L + 0.15 + 0.003L
= 0.103L + 0.15
と求めることができます。
ここからはバリバリ数学の方程式のお話になるのですが、上記2つの方式をイコールとして繋げる(方程式化する)ことで、インタプリタ方式とコンパイラ方式の交点(=処理時間が同じタイミング)のプログラム行数を求めることができます。
したがって、
0.2L = 0.103L + 0.15
という方程式ができ、上記を解いてみる(=Lの値を求める)と。
0.097L = 0.15
L ≒ 1.55
Lは100行単位なので、100をかけて実際の行数に戻してあげましょう。
すると、
1.55 x 100 = 155
ということで、エの「155」が答えです。(疲れた、、)
【解答】エ
第3問:
UML2.0のシーケンス図とコミュニケーション図のどちらにも表現されるものはどれか。
分類:テクノロジ系
【ポイント】シーケンス図とコミュニケーション図がすぐに頭に出てくればこちらのもの。
ア イベントとオブジェクトの状態
イ オブジェクトがある状態にとどまる最短時間及び最長時間
ウ オブジェクトがメッセージを処理している期間
エ オブジェクト間で送受信されるメッセージ
【コメント、解説】
勢い余ってアを選んでしまいました、、、
シーケンス図もコミュニケーション図も、オブジェクト間のメッセージのやりとりを表したものである。
アとイはどちらにも表現されていない。
アは状態遷移図、イはタイミング図で表現されている。
ウはシーケンス図のみ。
【解答】エ
おわりに、実際にこの記事を書いてみて
と、こんな感じで自分が苦戦した問題をnoteに備忘メモという形で記載してみました。
問題と解答を書き写してみるなんて意味ね〜だろ〜な〜、と最初は思っていましたが、実際に文字に起こしてみると思考が整理されて、苦手な計算問題も解き方がクリアになっていきました(ここでいう2問目)。
やはり、「noteに記事を書く=他人に教える」という感覚になるので苦手分野こそ文字に起こした方が効果的に学べるのかも。
もし好評であれば、いや好評であってもなくても、不定期的にやってみます。
それではまた次回!