記数法
- 位取り
- 2 進数 2k、8 進数 8k、16 進数 16k
- 10 進数へ
- Σ dk·bk
- 10 進数から
- 基数で割り、余りを下から上へ読む
- 16 進数 ↔ 2 進数
- 16 進数 1 桁 = 4 ビット
- 2 の補数
- ビットを反転して 1 を足す
公式集、全トピックの解法の要点、20 問の演習問題。完全な解答は巻末にあります。
8 ビットの 2 の補数で −80 を格納するようにビットを設定します。符号なしの数として読むと、このパターンの値 U はいくつですか?
12 ビットの 2 の補数で表せる最小(最も負の)整数 N はいくつですか?
((q → r) ∧ ¬q) → ¬r は恒真式、矛盾、そのどちらでもない式のうちのどれですか? 答えをクリックしてください。
前提 (r ∧ p) → q; r; ¬q が与えられています。そこから導かれる結論はどれですか? クリックしてください。
F = A′B′C′ + AB + A′B を最小の積和形に簡単化してください。簡単化した式に含まれるリテラル L はいくつですか?
同期式 mod-11 カウンタ は 0, 1, …, 10 と数えて 0 に戻ります。初期値は 4 です。22 クロックパルスのあとの計数値 Q(10 進数)はいくつですか?
13 を法とする 9 の逆元を求めてください:0 < x < 13 かつ 9·x ≡ 1 (mod 13) を満たす数 x です。
メッセージ m = 370 を RSA 公開鍵 (n, e) = (667, 3) で暗号化してください。暗号文 c を求めてください。
漸化式 T(n) = T(n/2) + O(1) の解は何ですか?
停止問題(halting problem)が示していることはどれですか?
負荷率がしきい値を超えた後にハッシュテーブルが再ハッシュ(rehash)すると、何が起こりますか。
オープンアドレス法を使うハッシュテーブルで、削除に「墓標」(tombstone)マーカーがよく使われるのはなぜですか。
この連結グラフには、オイラー閉路、閉路でないオイラー路、またはどちらもないのうち、どれがありますか? 答えをクリックしてください。
ダイクストラ法を使って、重み付きグラフで A から F までの最短経路の長さd(F)を求めてください。
関係代数で、選択演算子(σ)はどの SQL の句に対応しますか?
本番環境のクエリで NATURAL JOIN が危険とされるのはなぜですか?
RIP が経路の選択に使うメトリックはどれですか?
端末 A と C はどちらもアクセスポイント B に届きますが、互いの信号は聞こえないため、B でフレームが衝突します。802.11 はどのように対処しますか?
ある部署では、1 つのサブネット内に 28 個のホストアドレスが必要です。十分な大きさとなる最長のプレフィックス長 p(最小のサブネット)はいくつですか?
あるホストのアドレスは 10.20.84.88/26 です。そのサブネットのブロードキャストアドレスの最後の数(第 4 オクテット)x はいくつですか?
答え: U = 176
ビットの設定:各ビットは 2 のべき乗(128、64、…、1)の値をもちます。16 進の 1 桁はちょうど 4 ビットで、8 ビットの 2 の補数では、いちばん左のビットの値は −128 です。ビット演算は、各ビット位置を別々に扱います。
答え: N = −2048
位取り記数法:各桁の値は、その数字に基数のべき乗を掛けたものです。2 進数では各桁の重みが 1、2、4、8、16、…、16 進数では 1、16、256、… で、A–F は 10–15 を表します。8 ビットの 2 の補数では、最上位ビットの重みが +128 ではなく −128 になり、こうして負の数を表します。
答え: 恒真でも矛盾でもない式
論理的同値:2 つの論理式は、真理値表のすべての行で同じ値をとるとき同値(≡)です。恒真式(トートロジー)はすべての行で 1、矛盾(恒偽式)はすべての行で 0、どちらでもないものは充足可能な非恒真式です。役に立つ法則:ド・モルガンの法則 ¬(a ∧ b) ≡ ¬a ∨ ¬b と ¬(a ∨ b) ≡ ¬a ∧ ¬b、a → b ≡ ¬a ∨ b ≡ ¬b → ¬a(対偶)、¬(a → b) ≡ a ∧ ¬b、そして分配法則 a ∨ (b ∧ c) ≡ (a ∨ b) ∧ (a ∨ c)。
答え: ¬p
量化子と論証:¬∀x P(x) ≡ ∃x ¬P(x)、¬∃x P(x) ≡ ∀x ¬P(x)。否定を内側へ移し、通過する量化子をすべて入れ替え、内側の式は ¬(a → b) ≡ a ∧ ¬b のような命題論理の法則で否定します。論証は、すべての前提が 1 であるどの行でも結論が 1 のとき、妥当です。前提が真で結論が偽になる行が 1 つでもあれば、それは反例であり、その論証が妥当でないことを示します。
答え: L = 3
ブール代数:式を簡単にする規則は、X + X′ = 1 と X·X′ = 0、X + X = X、吸収則 X + X·Y = X、結合則 X·Y + X·Y′ = X、X + X′Y = X + Y、そしてコンセンサス定理 XY + X′Z + YZ = XY + X′Z です。ド・モルガンの法則は (X·Y)′ を X′ + Y′ に、(X + Y)′ を X′·Y′ に変えます。カルノー図はこれらの規則を図で適用するものです:隣り合う 2 つのセルのグループは、XY + XY′ = X を 1 回使うことに当たります。
答え: Q = 4
フリップフロップとカウンタ:フリップフロップは、有効なクロックエッジでだけ変化します。D は入力をコピーし(Q⁺ = D)、T は T = 1 のときトグルし、JK は 00 で保持、01 でリセット、10 でセット、11 でトグルします。n ビットの 2 進カウンタには 2ⁿ 個の状態があり、2ⁿ を法として数えます。mod-N カウンタは 0, 1, …, N − 1 と数えて 0 に戻り、2ⁿ ≥ N を満たす最小の n 個のフリップフロップが必要です。リップルカウンタの各段は周波数を半分にするので、mod-N カウンタの最後の出力は fclk/N で動作します。n 個のフリップフロップのジョンソンカウンタには 2n 個の状態があり、リングカウンタには n 個あります。
11 パルスごとに、カウンタは同じ状態に戻ります。
答え: 9−1 mod 13 = 3
逆元と合同式:a が n を法として逆元をもつのは、gcd(a, n) = 1 のときに限ります。拡張ユークリッドの互除法で 1 = s·n + t·a と書くと、a⁻¹ ≡ t (mod n) です。gcd(a, n) = 1 のとき、合同式 a·x ≡ b (mod n) の解は x ≡ a⁻¹·b です。法が互いに素な 2 つの合同式 x ≡ r₁ (mod m₁) と x ≡ r₂ (mod m₂) には、m₁·m₂ を法として 1 つの解があります(中国の剰余定理)。オイラーの φ(n) は、1 から n までの数のうち n と互いに素なものの個数です:φ(n) = n·∏(1 − 1/p)。
各余り r は r ≡ t·9 (mod 13) と書けます。
答え: c = 353
冪剰余と RSA:aᵏ mod n は反復二乗法で計算します:k を 2 進数で書き、二乗し、毎回簡約し、ビットが 1 の冪を掛けます。フェルマー:素数 p が a を割り切らないとき aᵖ⁻¹ ≡ 1 (mod p) なので、指数は p − 1 を法として簡約できます。RSA:素数 p と q を選び、n = p·q、φ(n) = (p − 1)(q − 1) とします。公開指数 e は φ(n) と互いに素で、秘密指数は d = e⁻¹ mod φ(n) です。暗号化は c = mᵉ mod n、復号は m = cᵈ mod n で行います。
答え: D · O(log n)
問題は各ステップで半分になり、各ステップの作業量は定数なので、ステップ数は約 log₂ n です。
答え: B · すべてのプログラムと入力について、それが停止するかどうかを判定できるアルゴリズムは存在しない
Turing は停止問題が決定不能(undecidable)であることを示しました。判定器が存在すると仮定すると、その逆の動作をするプログラムとの間で矛盾が生じます。
答え: A · より大きなテーブルが確保され、すべてのキーが挿入し直される
インデックスはテーブルのサイズを法として計算されるので、すべてのキーを新しい大きなテーブルに再ハッシュしなければなりません。サイズを 2 倍にすれば、ならしで O(1) のままです。
答え: A · スロットを空にすると、他のキーの探査列が途切れる可能性があるから
削除したスロットが空になると、その後の探索が途中で止まり、探査チェーンのさらに先に配置されたキーを見逃すおそれがあります。
答え: オイラー路あり、閉路なし
オイラー、ハミルトン、木:連結グラフは、すべての頂点の次数が偶数のときオイラー閉路(すべての辺を 1 回ずつ通って始点に戻る)をもち、ちょうど 2 つの頂点の次数が奇数のとき、閉路でないオイラー路をもちます。その路は、一方の奇数次数の頂点から他方へ通ります。ハミルトン閉路はすべての頂点を 1 回ずつ訪れ、Kn には (n − 1)!/2 個あります。n 個の頂点をもつ木には n − 1 本の辺があり、m 本の辺をもつ連結グラフは、m − n + 1 本の辺を取り除いても全域木が残ります。
オイラー路は、一方の奇数次数の頂点から始まり、他方で終わります。
答え: d(F) = 15
最短経路と全域木:ダイクストラ法は毎ラウンド 1 つの頂点を確定します:暫定距離が最小の未確定の頂点です。その距離は最終となり、各隣接頂点 v は d(v) = min(d(v), d(u) + w(u, v)) と更新されます。クラスカル法は、辺を軽い順に取り、閉路をつくる辺を飛ばして最小全域木をつくります。プリム法は、始点から 1 本の木を成長させ、その木から出る最も軽い辺を常に加えます。n 個の頂点の全域木には n − 1 本の辺があります。
各行:確定した頂点、その最終距離、距離が改善される隣接頂点。
答え: A · WHERE
σcondition(R) は、WHERE 句のように、条件を満たす R のタプルを返します。
答え: C · 同じ名前のすべての列で結合するため、新しい列が追加されると結果が知らないうちに変わりうるから
自然結合は、例えば無関係な "name" や "created_at" など、同じ名前の列すべてを照合します。明示的な ON や USING 句のほうが安全です。
答え: C · ホップ数
RIP はホップを数えるディスタンスベクター型プロトコルで、16 は到達不能を意味します。このため小規模なネットワークに限られます。
答え: C · 任意の RTS/CTS 交換:AP の CTS が近くのすべての端末に待つよう伝える
端末が Request to Send を送ると、AP が Clear to Send で応答します。その範囲内のすべての端末がこれを聞くため、隠れ端末は予約された時間の送信を控えます。
答え: p = 27
IPv4 サブネット化:アドレスは 32 ビットです。プレフィックス /p は先頭の何ビットがネットワークを表すかを示し、残りの 32 − p ビットでホストを番号付けします。サブネットには 2³²⁻ᵖ 個のアドレスがありますが、最初(ネットワークアドレス)と最後(ブロードキャストアドレス)はホストに割り当てられないため、2³²⁻ᵖ − 2 台のホストが収まります。 例外:/31(ポイントツーポイントリンク、RFC 3021)は 2 つのアドレスを両方ともホストに使い、/32 は単一のアドレス(単一ホストまたはループバック)です。
答え: x = 127
IPv4 サブネット化:アドレスは 32 ビットです。プレフィックス /p は先頭の何ビットがネットワークを表すかを示し、残りの 32 − p ビットでホストを番号付けします。サブネットには 2³²⁻ᵖ 個のアドレスがありますが、最初(ネットワークアドレス)と最後(ブロードキャストアドレス)はホストに割り当てられないため、2³²⁻ᵖ − 2 台のホストが収まります。 例外:/31(ポイントツーポイントリンク、RFC 3021)は 2 つのアドレスを両方ともホストに使い、/32 は単一のアドレス(単一ホストまたはループバック)です。
ExamProblems · examproblems.com/courses/computer-science-fundamentals