コンピュータサイエンス基礎:直前対策パック

公式集、全トピックの解法の要点、20 問の演習問題。完全な解答は巻末にあります。

新しい問題科目に戻る

印刷ウィンドウで「PDF として保存」を選ぶと、コピーを端末に保存できます。

1公式と解法

記数法

位取り
2 進数 2k、8 進数 8k、16 進数 16k
10 進数へ
Σ dk·bk
10 進数から
基数で割り、余りを下から上へ読む
16 進数 ↔ 2 進数
16 進数 1 桁 = 4 ビット
2 の補数
ビットを反転して 1 を足す

命題論理と証明

真理値表の行
2ⁿ
含意
p → q ≡ ¬p ∨ q ≡ ¬q → ¬p
含意の否定
¬(p → q) ≡ p ∧ ¬q
同値(双条件)
p ↔ q ≡ (p → q) ∧ (q → p)
ド・モルガンの法則
¬(p ∧ q) ≡ ¬p ∨ ¬q, ¬(p ∨ q) ≡ ¬p ∧ ¬q
分配法則
p ∨ (q ∧ r) ≡ (p ∨ q) ∧ (p ∨ r), p ∧ (q ∨ r) ≡ (p ∧ q) ∨ (p ∧ r)
量化子の否定
¬∀x P(x) ≡ ∃x ¬P(x), ¬∃x P(x) ≡ ∀x ¬P(x)
肯定式(modus ponens)、否定式(modus tollens)
p → q, p ⊢ q; p → q, ¬q ⊢ ¬p

解き方

  1. 異なる変数の数を数えます:真理値表の行数は 2ⁿ で、最初の行はすべて 1 です。
  2. 部分式ごとに列を用意し、内側から順に列を埋めていきます。
  3. 各結合子の規則を適用します:→ が 0 になるのは 1 → 0 のときだけ、↔ は両辺が一致するとき 1 です。
  4. 同値の判定では最後の列を行ごとに比べます。論証の判定では、すべての前提が 1 である行だけを見ます。
  5. 量化された文を否定するには、¬ を内側へ移し、∀ と ∃ を入れ替え、内側の式を否定します。

デジタル論理:ゲート・カルノー図・フリップフロップ

基本ゲート
A·B, A + B, A′, (A·B)′, (A + B)′, A ⊕ B
ブールの規則
X + X′ = 1, X·X′ = 0, X + XY = X, XY + XY′ = X
ド・モルガンの法則
(X·Y)′ = X′ + Y′, (X + Y)′ = X′·Y′
カルノー図の並び順
00, 01, 11, 10 (Gray code)
2ᵏ 個のセルのグループ
k 個の変数が消える
4 対 1 マルチプレクサ
F = A′B′I0 + A′BI1 + AB′I2 + ABI3
フリップフロップ
D: Q⁺ = D, T: Q⁺ = T ⊕ Q, JK: Q⁺ = JQ′ + K′Q
カウンタ
n ビット:2ⁿ 状態; mod-N:2ⁿ ≥ N を満たす最小の n; fout = fclk/N
リップルカウンタ
fmax = 1/(n·tpd)
リングカウンタとジョンソンカウンタ
n 状態と 2n 状態

解き方

  1. 回路では、入力から出力へ向かってゲートを 1 つずつ進み、各配線に値を書き込むか、式を書いて真理値表を埋めましょう。
  2. 簡単化するには、1(とドントケアは X として)を、行と列がグレイコード 00, 01, 11, 10 のカルノー図に書き込みましょう。
  3. 1 を、1, 2, 4, 8, 16 個のセルからなる、できるだけ少なくできるだけ大きなグループで、端をまたぎながら覆いましょう。各グループは、一定のままの変数からなる 1 つの積項です。POS 形には 0 をグループ化します。
  4. フリップフロップとカウンタでは、各有効クロックエッジで入力を読み取り、エッジごとの状態を書き出し、n ビットのカウンタは 2ⁿ 個の状態で折り返すことを忘れないようにしましょう。

整数論と合同式

余りのある割り算
a = q·n + r, 0 ≤ r < n
ユークリッド
gcd(a, b) = gcd(b, a mod b)
最小公倍数
lcm(a, b) = a·b/gcd(a, b)
逆行列
a·a⁻¹ ≡ 1 (mod n), gcd(a, n) = 1
一次合同式
a·x ≡ b → x ≡ a⁻¹·b (mod n)
オイラーのトーシェント関数
φ(n) = n·∏(1 − 1/p), φ(pᵏ) = pᵏ − pᵏ⁻¹
フェルマー
aᵖ⁻¹ ≡ 1 (mod p)
RSA
n = pq, φ = (p − 1)(q − 1), d = e⁻¹ mod φ, c = mᵉ mod n, m = cᵈ mod n

解き方

  1. まずすべての数を n で割った余りに直します。余りは 0 から n − 1 の間です。
  2. 最大公約数は、ユークリッドの互除法で割り算を繰り返して求めます。最後の 0 でない余りが最大公約数です。
  3. 逆元は拡張ユークリッドの互除法で求め、a の係数を取ります。負なら n を足します。
  4. a·x ≡ b は a⁻¹ を掛けて解きます。2 つの合同式は x = r₁ + m₁k とおいて組み合わせます。
  5. べき乗では、指数を 2 進数で書いて平方を繰り返します。RSA では d = e⁻¹ mod φ(n)、φ(n) = (p − 1)(q − 1) です。

グラフ理論

握手補題
Σ deg(v) = 2|E|
完全グラフ
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
正則グラフ
|E| = n·k/2
木と森
|E| = n − 1, |E| = n − c
木の葉
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
オイラー
閉路:すべての次数が偶数; 路:奇数次数がちょうど 2 つ
Kn のハミルトン閉路
(n − 1)!/2
ダイクストラ法の更新
d(v) = min(d(v), d(u) + w(u, v))
長さ L の歩道
(Mᴸ)ij

解き方

  1. 各頂点の次数を書き出します。次数の総和は辺の数の 2 倍になります。
  2. オイラーの問題では、グラフが連結であることを確かめ、奇数次数の頂点を数えます。
  3. 木では、辺が n − 1 本であることと握手補題を使います。
  4. ダイクストラ法では、暫定距離の表をつくり、毎回、未確定の頂点のうち最小のものを確定します。
  5. 最小全域木では、辺を重みの順に並べ、閉路をつくる辺を飛ばす方法(クラスカル法)か、始点から 1 本の木を成長させる方法(プリム法)を使います。

IPv4 サブネット化

サブネットあたりのホスト数
2(32 − prefix) − 2 (/31: 2, /32: 1)
ブロックサイズ
256 − (mask octet)
ネットワークアドレス
IP AND マスク
ブロードキャストアドレス
IP OR (NOT マスク):ホスト部のビットをすべて 1 にする
n ビット借りたときのサブネット数
2n

2演習問題

1.記数法ふつう
8 ビットの 2 の補数0−12806403201608040201

8 ビットの 2 の補数で −87 を格納するようにビットを設定します。符号なしの数として読むと、このパターンの値 U はいくつですか?

N = −878 bit
U =
2.記数法むずかしい
ビットをクリックして設定します012806403201608040201

ビットを 1110 0110 OR 0111 0000 の 8 ビットの結果に設定します。結果の値 R は 10 進でいくつですか?

1110 0110OR0111 0000
R =
3.命題論理と証明ふつう
pqrr ∨ (q → ¬p)(q ↔ p) → (r ∨ (q → ¬p))¬((q ↔ p) → (r ∨ (q → ¬p)))111?110?101?100?011?010?001?000?

この論理式 ¬((q ↔ p) → (r ∨ (q → ¬p))) は、真理値表の 8 行のうち何行で真になりますか? この数を N とします。

¬((q ↔ p) → (r ∨ (q → ¬p)))
N =
4.命題論理と証明むずかしい
prp → rrp11100100

前提 p → r; r、結論 p の論証は妥当ではありません。反例となる真理値表の行をクリックしてください。

p → rr∴ p
  1. 1p = 1, r = 1
  2. 2p = 1, r = 0
  3. 3p = 0, r = 1
  4. 4p = 0, r = 0
5.デジタル論理:ゲート・カルノー図・フリップフロップふつう
MUX1I0​C′I1​CI2​C′I3​ABS1​S0​F

4 対 1 マルチプレクサの選択入力が S₁ = A、S₀ = B で、データ入力は I₀ = 1、I₁ = C′、I₂ = C、I₃ = C′ につながれています。A, B, C の 8 通りの組み合わせのうち、出力 F = 1 になるのはいくつですか? N を求めてください。

I₀ = 1I₁ = C′I₂ = CI₃ = C′
N =
6.デジタル論理:ゲート・カルノー図・フリップフロップむずかしい
CLKJK1234567

正エッジトリガの JK フリップフロップが Q = 0 から始まり、7 回の立ち上がりクロックエッジで図の入力を受け取ります。Q は何回N状態を変えますか?

Q₀ = 0JK
N =
7.整数論と合同式ふつう

オイラーのトーシェント関数 φ(33)、つまり 1 から 33 までの整数のうち 33 と互いに素なものの個数を求めてください。

n = 33 = 3·11
φ(33) =
8.整数論と合同式むずかしい

反復二乗法を使って 3152 mod 61 を求めてください。

a = 3k = 152n = 61
3152 mod 61 =
9.アルゴリズムと計算量ふつう

O(n²) のアルゴリズムは O(n³) でもあると言うのは正しいですか?

  1. Aいいえ。n が大きいとき n³ は n² より小さいから
  2. Bいいえ。Big O は常に関数の正確な増加率を述べなければならないから
  3. Cはい。ただし n が 100 より小さい場合に限る
  4. Dはい。Big O は上界であり、n² は n³ より速く増加しないから
10.アルゴリズムと計算量むずかしい

log(n!) について正しい評価はどれですか?

  1. AΘ(n)
  2. BΘ(n²)
  3. CΘ(log n)
  4. DΘ(n log n)
11.データ構造ふつう

平衡二分探索木でキーを探索する時間計算量はどれですか。

  1. AO(n log n)
  2. BO(n)
  3. CO(log n)
  4. DO(1)
12.データ構造むずかしい

ある動的配列は満杯になるとサイズを 2 倍にします。多くの実装が、半分ではなく 4 分の 1 まで減ったときにだけ縮小するのはなぜですか。

  1. A半分で半減させると要素が失われるから
  2. Bメモリアロケータはブロックの 4 分の 1 単位でしかメモリを解放できないから
  3. C境界付近で push と pop が交互に起こるときに、サイズ変更が繰り返されるのを避けるため
  4. D配列をソートされた状態に保つため
13.グラフ理論ふつう
ABCDEオイラー閉路オイラー路あり、閉路なしどちらでもない

この連結グラフには、オイラー閉路、閉路でないオイラー路、またはどちらもないのうち、どれがありますか? 答えをクリックしてください。

|V| = 5|E| = 7
  1. 1オイラー閉路
  2. 2オイラー路あり、閉路なし
  3. 3どちらでもない
14.グラフ理論むずかしい
111315712313141114ABCDEFG

ダイクストラ法を使って、重み付きグラフで A から F までの最短経路の長さd(F)を求めてください。

始点:A終点:F
d(F) =
15.データベースと SQLふつう

WHERE EXISTS (subquery) が行について真になるのはどのような場合ですか?

  1. Aサブクエリがちょうど 1 行を返す場合
  2. Bサブクエリが少なくとも 1 行を返す場合
  3. Cサブクエリが NULL 値を返さない場合
  4. Dサブクエリが 0 より大きい数を返す場合
16.データベースと SQLむずかしい

多版型同時実行制御(MVCC)では、読み取り側はどのようにして書き込み側をブロックせずに済みますか?

  1. A読み取り側はコミット済みの行バージョンの一貫したスナップショットを見て、書き込み側は新しいバージョンを作る
  2. B読み取り側がいる間は書き込みが許されない
  3. C読み取り側は常にすべての書き込み側のコミットを待つ
  4. D読み取り側は未コミットのデータを直接読む
17.コンピュータネットワークふつう

クライアントが DHCP からアドレスを取得するときの通常のメッセージの順序はどれですか?

  1. ARequest、Offer、Discover、Acknowledge
  2. BOffer、Discover、Acknowledge、Request
  3. CDiscover、Request、Offer、Acknowledge
  4. DDiscover、Offer、Request、Acknowledge
18.コンピュータネットワークむずかしい

サイトが自己署名証明書を提示すると、ブラウザーが警告を出すのはなぜですか?

  1. Aその証明書は常に期限切れだから
  2. B自己署名証明書はまったく暗号化を使わないので、通信は平文で送られる
  3. Cサイトが HTTPS ではなく HTTP を使っているはずだから
  4. Dその鍵がそのサイトのものであることを保証する信頼された認証局がないから
19.IPv4 サブネット化ふつう
/?11111111111111111111100000000000ネットワーク部ホスト部

ある部署では、1 つのサブネット内に 1152 個のホストアドレスが必要です。十分な大きさとなる最長のプレフィックス長 p(最小のサブネット)はいくつですか?

1152 hosts
p =
20.IPv4 サブネット化むずかしい
最後のオクテット = 144112806403211608040201ネットワークホスト

あるホストのアドレスは 10.20.215.144/28 です。そのネットワークアドレスの第 4 オクテット x はいくつですか?

10.20.215.144/28
x =

3溶液

1.記数法

答え: U = 169

ビットの設定:各ビットは 2 のべき乗(128、64、…、1)の値をもちます。16 進の 1 桁はちょうど 4 ビットで、8 ビットの 2 の補数では、いちばん左のビットの値は −128 です。ビット演算は、各ビット位置を別々に扱います。

反転して 1 を足す

87 = 0101 0111
反転後: 1010 1000
+1 → 1010 1001

符号なしとして読む

1010 1001₂ = 256 − 87 = 169

答え

U = 169
2.記数法

答え: R = 246

ビットの設定:各ビットは 2 のべき乗(128、64、…、1)の値をもちます。16 進の 1 桁はちょうど 4 ビットで、8 ビットの 2 の補数では、いちばん左のビットの値は −128 です。ビット演算は、各ビット位置を別々に扱います。

ビットごとに

OR は、少なくとも一方のビットが 1 のところで 1 になります。

1110 0110
OR 0111 0000
= 1111 0110

結果の値

1111 0110₂ = 246

答え

R = 246
3.命題論理と証明

答え: N = 1

真理値表:n 個の異なる変数をもつ論理式には、真理値のすべての組み合わせに対応する 2ⁿ 行があります(1 = 真、0 = 偽)。内側から順に進め、部分式ごとに列を用意します。¬a は値を反転させ、a ∧ b は両方が 1 のときだけ 1、a ∨ b は両方が 0 のときだけ 0、a → b は a = 1 かつ b = 0 のときだけ 0、a ↔ b は両辺が等しいとき 1 です。

真理値表を行ごとに見る

p = 1, q = 1, r = 1: q ↔ p = 1, ¬p = 0, q → ¬p = 0, r ∨ (q → ¬p) = 1, (q ↔ p) → (r ∨ (q → ¬p)) = 1, ¬((q ↔ p) → (r ∨ (q → ¬p))) = 0
p = 1, q = 1, r = 0: q ↔ p = 1, ¬p = 0, q → ¬p = 0, r ∨ (q → ¬p) = 0, (q ↔ p) → (r ∨ (q → ¬p)) = 0, ¬((q ↔ p) → (r ∨ (q → ¬p))) = 1
p = 1, q = 0, r = 1: q ↔ p = 0, ¬p = 0, q → ¬p = 1, r ∨ (q → ¬p) = 1, (q ↔ p) → (r ∨ (q → ¬p)) = 1, ¬((q ↔ p) → (r ∨ (q → ¬p))) = 0
p = 1, q = 0, r = 0: q ↔ p = 0, ¬p = 0, q → ¬p = 1, r ∨ (q → ¬p) = 1, (q ↔ p) → (r ∨ (q → ¬p)) = 1, ¬((q ↔ p) → (r ∨ (q → ¬p))) = 0
p = 0, q = 1, r = 1: q ↔ p = 0, ¬p = 1, q → ¬p = 1, r ∨ (q → ¬p) = 1, (q ↔ p) → (r ∨ (q → ¬p)) = 1, ¬((q ↔ p) → (r ∨ (q → ¬p))) = 0
p = 0, q = 1, r = 0: q ↔ p = 0, ¬p = 1, q → ¬p = 1, r ∨ (q → ¬p) = 1, (q ↔ p) → (r ∨ (q → ¬p)) = 1, ¬((q ↔ p) → (r ∨ (q → ¬p))) = 0
p = 0, q = 0, r = 1: q ↔ p = 1, ¬p = 1, q → ¬p = 1, r ∨ (q → ¬p) = 1, (q ↔ p) → (r ∨ (q → ¬p)) = 1, ¬((q ↔ p) → (r ∨ (q → ¬p))) = 0
p = 0, q = 0, r = 0: q ↔ p = 1, ¬p = 1, q → ¬p = 1, r ∨ (q → ¬p) = 1, (q ↔ p) → (r ∨ (q → ¬p)) = 1, ¬((q ↔ p) → (r ∨ (q → ¬p))) = 0

値が 1 の行を数える

¬((q ↔ p) → (r ∨ (q → ¬p))): 0, 1, 0, 0, 0, 0, 0, 0
N = 1

答え

N = 1
4.命題論理と証明

答え: p = 0, r = 1

量化子と論証:¬∀x P(x) ≡ ∃x ¬P(x)、¬∃x P(x) ≡ ∀x ¬P(x)。否定を内側へ移し、通過する量化子をすべて入れ替え、内側の式は ¬(a → b) ≡ a ∧ ¬b のような命題論理の法則で否定します。論証は、すべての前提が 1 であるどの行でも結論が 1 のとき、妥当です。前提が真で結論が偽になる行が 1 つでもあれば、それは反例であり、その論証が妥当でないことを示します。

前提と結論を行ごとに見る

p = 1, r = 1: 1 1 | 1
p = 1, r = 0: 0 0 | 1
p = 0, r = 1: 1 1 | 0
p = 0, r = 0: 1 0 | 0

反例

p = 0, r = 1

答え

p = 0, r = 1

この形の論証は妥当な規則のように見えますが、1 行あれば妥当でないことを示せます。

5.デジタル論理:ゲート・カルノー図・フリップフロップ

答え: N = 5

マルチプレクサ:2ⁿ 対 1 のマルチプレクサは、データ入力の 1 つを出力に通します。選択線を 2 進数として読んだ値が、どれを通すかを決めます。選択線 S₁S₀ = AB の 4 対 1 MUX では、F = A′B′·I₀ + A′B·I₁ + AB′·I₂ + AB·I₃ です。データ入力を 0, 1, C, C′ につなぐと、MUX は A, B, C の任意の関数を出力でき、1 つのチップで論理をつくる一般的な方法です。

出力の式

F = A′B′ + A′BC′ + AB′C + ABC′

F = 1 の行

ABC = 000, 001, 010, 101, 110
N = 5

答え

N = 5
6.デジタル論理:ゲート・カルノー図・フリップフロップ

答え: N = 3

フリップフロップとカウンタ:フリップフロップは、有効なクロックエッジでだけ変化します。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 個あります。

エッジごとの Q

JK フリップフロップ:00 は保持、01 はリセット(Q = 0)、10 はセット(Q = 1)、11 はトグルです。

1: J = 0, K = 0 → Q = 0
2: J = 1, K = 1 → Q = 1
3: J = 1, K = 1 → Q = 0
4: J = 1, K = 0 → Q = 1
5: J = 1, K = 0 → Q = 1
6: J = 1, K = 0 → Q = 1
7: J = 1, K = 0 → Q = 1

変化を数える

0 → 0 → 1 → 0 → 1 → 1 → 1 → 1
N = 3

答え

N = 3
7.整数論と合同式

答え: φ(33) = 20

逆元と合同式: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)。

素因数

33 = 3·11

トーシェント関数

φ(33) = φ(3)·φ(11) = 2·10 = 20

答え

φ(33) = 20
8.整数論と合同式

答え: 3152 mod 61 = 9

冪剰余と 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 で行います。

2 進数の指数

152 = 100110002 = 128 + 16 + 8

反復二乗法

31 ≡ 3 (mod 61)
32 ≡ 9 (mod 61)
34 ≡ 20 (mod 61)
38 ≡ 34 (mod 61)
316 ≡ 58 (mod 61)
332 ≡ 9 (mod 61)
364 ≡ 20 (mod 61)
3128 ≡ 34 (mod 61)

必要な冪を掛ける

3152 ≡ 34·58·34 ≡ 9 (mod 61)

答え

3152 mod 61 = 9
9.アルゴリズムと計算量

答え: D · はい。Big O は上界であり、n² は n³ より速く増加しないから

これが答えになる理由

Big O は上界なので、この記述は正しいですがタイトではありません。正確な増加率を述べるのは Θ(n²) です。

答え

D · はい。Big O は上界であり、n² は n³ より速く増加しないから
10.アルゴリズムと計算量

答え: D · Θ(n log n)

これが答えになる理由

log(n!) ≤ n log n であり、大きい方の n / 2 個の因数から log(n!) ≥ (n / 2) log(n / 2) が得られます。これが比較ソートに Ω(n log n) が必要な理由です。

答え

D · Θ(n log n)
11.データ構造

答え: C · O(log n)

これが答えになる理由

平衡木の高さは約 log₂ n なので、探索は根から葉への 1 本の経路をたどるだけです。

答え

C · O(log n)
12.データ構造

答え: C · 境界付近で push と pop が交互に起こるときに、サイズ変更が繰り返されるのを避けるため

これが答えになる理由

半分で縮小すると、そのような操作列では毎回の操作でサイズ変更が起こりえます。4 分の 1 と満杯の間の幅があることで、ならしコストが O(1) に保たれます。

答え

C · 境界付近で push と pop が交互に起こるときに、サイズ変更が繰り返されるのを避けるため
13.グラフ理論

答え: オイラー路あり、閉路なし

オイラー、ハミルトン、木:連結グラフは、すべての頂点の次数が偶数のときオイラー閉路(すべての辺を 1 回ずつ通って始点に戻る)をもち、ちょうど 2 つの頂点の次数が奇数のとき、閉路でないオイラー路をもちます。その路は、一方の奇数次数の頂点から他方へ通ります。ハミルトン閉路はすべての頂点を 1 回ずつ訪れ、Kn には (n − 1)!/2 個あります。n 個の頂点をもつ木には n − 1 本の辺があり、m 本の辺をもつ連結グラフは、m − n + 1 本の辺を取り除いても全域木が残ります。

次数

deg(A) = 2, deg(B) = 4, deg(C) = 3, deg(D) = 2, deg(E) = 3

奇数次数の頂点

C, E → 2
オイラー路あり、閉路なし

答え

オイラー路あり、閉路なし

オイラー路は、一方の奇数次数の頂点から始まり、他方で終わります。

14.グラフ理論

答え: d(F) = 31

最短経路と全域木:ダイクストラ法は毎ラウンド 1 つの頂点を確定します:暫定距離が最小の未確定の頂点です。その距離は最終となり、各隣接頂点 v は d(v) = min(d(v), d(u) + w(u, v)) と更新されます。クラスカル法は、辺を軽い順に取り、閉路をつくる辺を飛ばして最小全域木をつくります。プリム法は、始点から 1 本の木を成長させ、その木から出る最も軽い辺を常に加えます。n 個の頂点の全域木には n − 1 本の辺があります。

ダイクストラ法をラウンドごとに

各行:確定した頂点、その最終距離、距離が改善される隣接頂点。

A (0): B: 11, C: 13
B (11): D: 18
C (13): E: 25, G: 24
D (18): E: 21, F: 31
E (21)
G (24)
F (31)

最短経路

A → B → D → F
d(F) = 31

答え

d(F) = 31
15.データベースと SQL

答え: B · サブクエリが少なくとも 1 行を返す場合

これが答えになる理由

EXISTS は行が生成されるかどうかだけを調べます。NOT EXISTS はサブクエリが行を返さないときに真になります。

答え

B · サブクエリが少なくとも 1 行を返す場合
16.データベースと SQL

答え: A · 読み取り側はコミット済みの行バージョンの一貫したスナップショットを見て、書き込み側は新しいバージョンを作る

これが答えになる理由

MVCC は古い行バージョンを保持するため、読み取り側は自分のスナップショット時点のデータを見ることができ、書き込み側はその場で上書きする代わりに新しいバージョンを作ります。

答え

A · 読み取り側はコミット済みの行バージョンの一貫したスナップショットを見て、書き込み側は新しいバージョンを作る
17.コンピュータネットワーク

答え: D · Discover、Offer、Request、Acknowledge

これが答えになる理由

クライアントが Discover をブロードキャストし、サーバーが Offer で応答し、クライアントが 1 つの提案を Request し、選ばれたサーバーが Acknowledge で確定します。

答え

D · Discover、Offer、Request、Acknowledge
18.コンピュータネットワーク

答え: D · その鍵がそのサイトのものであることを保証する信頼された認証局がないから

これが答えになる理由

ブラウザーは、信頼ストアにある CA が直接または連鎖を通じて署名した証明書を信頼します。自己署名証明書は、中間者を含め誰でも作ることができます。

答え

D · その鍵がそのサイトのものであることを保証する信頼された認証局がないから
19.IPv4 サブネット化

答え: p = 21

IPv4 サブネット化:アドレスは 32 ビットです。プレフィックス /p は先頭の何ビットがネットワークを表すかを示し、残りの 32 − p ビットでホストを番号付けします。サブネットには 2³²⁻ᵖ 個のアドレスがありますが、最初(ネットワークアドレス)と最後(ブロードキャストアドレス)はホストに割り当てられないため、2³²⁻ᵖ − 2 台のホストが収まります。 例外:/31(ポイントツーポイントリンク、RFC 3021)は 2 つのアドレスを両方ともホストに使い、/32 は単一のアドレス(単一ホストまたはループバック)です。

必要なホストビット数

210 − 2 = 1022 < 1152
211 − 2 = 2046 ≥ 1152 → h = 11

プレフィックス長

p = 32 − 11 = 21

答え

p = /21
20.IPv4 サブネット化

答え: x = 144

IPv4 サブネット化:アドレスは 32 ビットです。プレフィックス /p は先頭の何ビットがネットワークを表すかを示し、残りの 32 − p ビットでホストを番号付けします。サブネットには 2³²⁻ᵖ 個のアドレスがありますが、最初(ネットワークアドレス)と最後(ブロードキャストアドレス)はホストに割り当てられないため、2³²⁻ᵖ − 2 台のホストが収まります。 例外:/31(ポイントツーポイントリンク、RFC 3021)は 2 つのアドレスを両方ともホストに使い、/32 は単一のアドレス(単一ホストまたはループバック)です。

ブロックサイズ

24 = 16

このホストのサブネット

ネットワーク: ⌊144/16⌋·16 = 144
ブロードキャスト: 144 + 16 − 1 = 159
使えるホスト: 145 … 158

答え

x = 144

ExamProblems · examproblems.com/courses/computer-science-fundamentals