平成21年秋期 午前問7

Linuxにおける共有ライブラリの話。
詳細はこの辺が分かり良かった。

大雑把に言うとメモリ上に置かれて複数のアプリから使える状態にスタンバってるライブラリのこと。
それを前提に考えると「実行時のメモリ使用効率が良い。」が正解。

平成21年秋期 午前問6

アルゴリズムの問題。
並列処理の同期を正しく解決できるかがポイント。

AとXの処理の前に同期が取られるので、
例えば、Bを実行したあとYが実行されずにAが実行されるような動作はありえない。
それを踏まえて選択肢の処理を確認すると、ありえるのは「B→X→A→Y」のみ。

平成21年秋期 午前問5

アルゴリズムで行う演算問題。
ポインタに対する理解が鍵。
てか、PHPでポインタを意識することなんてほぼないんで!
分からんw!

実装方法1:
追加時間f(n)はn+1、削除時間g(n)はn。
故にg(n)/f(n)=n/n+1となるが、nは非常に大きいので
n/n+1≒n/n=1
となり、ほぼ1になる。

実装方法2:
変数rearから末尾のセルへ移動できても、「末尾のセルからその一つ手前のセルへはポインタがないので戻ることができない」という点に注意。

追加時間f(n)は1、削除時間g(n)はn-1。
故にn-1/1≒n/1=nとなり、ほぼnとなる。

平成21年秋期 午前問4

誤り検出方式であるCRCに関する問題。
って、だから略語やめぇえええええ。・゚・(ノ∀`)・゚・。
CRC(Cyclic Redundancy Check、巡回冗長検査)は、誤り検出符号の一種。
前にパリティチェックとかあったけど、それの親戚か何かか。
詳しくはwikiって。
あと、ココも参照した。

「ビット列のデータをある生成多項式で割った余りを検査用のCRC符号として、データに付加して送信する方式である。」
というものだそうだ。

・検査用データは,検査対象のデータを生成多項式で処理して得られる1ビットの値である。
 →余りを符号として送るので、1ビットではない、

・受信側では,付加されてきた検査用データで検査対象のデータを割り,余りがなければ送信が正しかったと判断する。
 →受信側では、検査対象データを同じ生成多項式で除算し、余りが送信されてきた検査用データと同一かどうかによって送信の正しさを検証する。

・送信側では,生成多項式を用いて検査対象のデータから検査用データを作り,これを検査対象のデータに付けて送信する。
 →正解

・送信側と受信側では,異なる生成多項式が用いられる。
 →同じ生成多項式で割り切れるかどうかを見る。

平成21年秋期 午前問3

標本化定理(サンプリング定理)に関する問題。
解説はココが分かりやすかった。
|ω|が顔文字にしか見えなくて困るけど。

「x=f(t)の周波数ωが最大値Wをもつとき、間隔T=1/2Wでサンプリングする」
ということらしい。
周波数が「0~20kHz」なので、W=20を当てはめて計算してみる。

T=1/(2*20000)=1/40000=0.000025秒
0.000025秒=0.025ミリ秒=25マイクロ秒

正解は「25マイクロ秒」となる。

平成21年秋期 午前問2

集合に関する問題。
排他的論理和ってどんだだっけー?
AでもBでもない、でいいんか。
全部、図で書いてみたら3つとも成立した。

解説は図があったほうが分かりやすいので、解説参照。

平成21年秋期 午前問1

2の補数に関する問題。
と言いつつですね、そもそも2の補数ってなんぞ。
聞き覚えがあると思ったら、基本情報の勉強で放り投げた問題だった件。
ひゃっほーぃ!

基本情報の解説だけど、この辺が分かりやすい、かも?

補数=ある基準となる数
基準1)その桁で最大の数になるもの
基準2)次の桁へ繰り上がりになるもの

10進数の場合、1)が9の補数、2)が10の補数。
2進数の場合、1)が1の補数、2)が2の補数。

問題では2進数の2の補数について問うている。
つまり、「2進数のある数に対し、次の桁へ繰り上がりになるもの」についてということ。

ん?アレ?というかこれ、計算の公式がどうとかって話じゃないね?
「2の補数を使った表現と、2の補数で負数を表現した時の計算式の辻褄が合うから、それをそのまま使うとコンピューター的に計算早くなるよね!」って話なの?

とりあえず、「加算のみで減算を行うことができます。つまり、コンピュータが「減算を行う」という仕組みを加算で代用できるわけで、計算回路の簡略化につながります。」ということなので。
「減算を,負数の作成と加算処理で行うことができる。」が正解。

……解説読んでて、「人間が2の補数を求めるのは計算が面倒ですが」って書いてて凄く納得した★