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

公式集、全トピックの解法の要点、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 の補数で −90 を格納するようにビットを設定します。符号なしの数として読むと、このパターンの値 U はいくつですか?

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

ビットを 0111 1000 << 3 の 8 ビットの結果に設定します。結果の値 R は 10 進でいくつですか?

0111 1000<< 3
R =
3.命題論理と証明ふつう
abcc ∨ b(c ∨ b) ↔ a(c ∨ (b ↔ a)) ∨ ((c ∨ b) ↔ a)111?110?101?100?011?010?001?000?

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

(c ∨ (b ↔ a)) ∨ ((c ∨ b) ↔ a)
N =
4.命題論理と証明むずかしい
∃x (A(x) ∧ ∀y ¬R(x, y))∀x (A(x) ∧ ∀y ¬R(x, y))∃x (A(x) → ∀y ¬R(x, y))∃x (¬A(x) ∧ ∃y R(x, y))

否定を最も内側まで移したとき、¬∀x (A(x) → ∃y R(x, y)) と同値な主張はどれですか? クリックしてください。

¬∀x (A(x) → ∃y R(x, y))
  1. 1∃x (A(x) ∧ ∀y ¬R(x, y))
  2. 2∀x (A(x) ∧ ∀y ¬R(x, y))
  3. 3∃x (A(x) → ∀y ¬R(x, y))
  4. 4∃x (¬A(x) ∧ ∃y R(x, y))
5.デジタル論理:ゲート・カルノー図・フリップフロップふつう
ABCD000111100001111011111111

このカルノー図には、隣り合う 1 をもたない 1 がちょうど 1 つあり、最小の SOP 形では 1 セルのグループ(4 リテラルの完全な最小項)のままです。図の端をまたぐ隣接も数えます。そのセルをクリックしてください。

F = Σm(0, 1, 2, 4, 6, 9, 12, 15)
  1. 1AB = 00, CD = 00
  2. 2AB = 00, CD = 01
  3. 3AB = 00, CD = 11
  4. 4AB = 00, CD = 10
  5. 5AB = 01, CD = 00
  6. 6AB = 01, CD = 01
  7. 7AB = 01, CD = 11
  8. 8AB = 01, CD = 10
  9. 9AB = 11, CD = 00
  10. 10AB = 11, CD = 01
  11. 11AB = 11, CD = 11
  12. 12AB = 11, CD = 10
  13. 13AB = 10, CD = 00
  14. 14AB = 10, CD = 01
  15. 15AB = 10, CD = 11
  16. 16AB = 10, CD = 10
6.デジタル論理:ゲート・カルノー図・フリップフロップむずかしい
DQ3​Q3​DQ2​Q2​DQ1​Q1​DQ0​Q0​CLKJOHNSON

4 ビットのジョンソンカウンタ Q₃Q₂Q₁Q₀ は 0000 から始まります。クロックエッジごとにビットは 1 つ右へシフトし(Q₃ → Q₂ → Q₁ → Q₀)、Q₃ には Q₀ の反転が入ります。11 クロックエッジのあとの状態 Q = Q₃Q₂Q₁Q₀ を 10 進数で答えてください。

Q₃Q₂Q₁Q₀ = 000011
Q =
7.整数論と合同式ふつう

11x ≡ 6 (mod 17) を解いてください。0 < x < 17 を満たす解 x を答えてください。

11x ≡ 6 (mod 17)
x =
8.整数論と合同式むずかしい
mc = me​ mod n788m = cd​ mod n?(n, e) = (1147, 17)d

ある RSA 鍵は p = 31、q = 37、e = 17 を使います。暗号文 c = 788 を復号して、メッセージ m を求めてください。

p = 31q = 37e = 17c = 788
m =
9.アルゴリズムと計算量ふつう

動的計画法(dynamic programming)が有効なのは、問題が次の性質を持つときです。

  1. Aループが一つだけ
  2. Bランダムな入力のみ
  3. C部分問題がまったくないので、1 ステップで解ける
  4. D重複する部分問題と最適部分構造
10.アルゴリズムと計算量むずかしい

シュトラッセンのアルゴリズムは、半分のサイズのブロックの再帰的な掛け算を 8 回ではなく 7 回にして行列を掛けます。実行時間は何ですか?

  1. AΘ(n³)
  2. BΘ(nlog₂ 7)、約 n2.81
  3. CΘ(n2)
  4. DΘ(n² log n)
11.データ構造ふつう

二分探索木のあるノードが右部分木をもっています。その通りがけ順での次のノード(後続ノード)はどこにありますか。

  1. A左部分木の最も右のノード
  2. B常にその親
  3. C常にその右の子
  4. D右部分木の最も左のノード
12.データ構造むずかしい

ブルームフィルタは「この要素は集合に含まれるか」という問いにどのように答えますか。

  1. A偽陽性はあり得るが、偽陰性はない
  2. B常に正確な答えを返す
  3. C数値に対してのみ答えられる
  4. D偽陰性はあり得るが、偽陽性はない
13.グラフ理論ふつう

完全グラフ K5 には、異なるハミルトン閉路が何個Hありますか? 始点や向きだけが異なる閉路は同じものとして数えます。

K5
H =
14.グラフ理論むずかしい
15141121141101ABCDEF

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

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

学生は多くの科目を履修でき、科目には多くの学生がいます。これはテーブルでどのようにモデル化しますか?

  1. A学生と科目を 1 つのテーブルにまとめて
  2. B学生と科目の両方への外部キーを持つ中間テーブルで
  3. C1 つの列に科目 id のリストを保存して
  4. Dstudents テーブルに courses を指す外部キー列 course_id を置いて
16.データベースと SQLむずかしい

テーブル employee(emp_id, dept_id, dept_name) のキーは emp_id で、dept_id → dept_name です。正しい記述はどれですか?

  1. ABCNF であり、したがって 3NF である
  2. B1NF ではない
  3. C2NF だが 3NF ではない
  4. D2NF ではない
17.コンピュータネットワークふつう

次のうち、プライベート IPv4 アドレスの範囲はどれですか?

  1. A100.0.0.0/8
  2. B192.168.0.0/16
  3. C8.8.8.0/24
  4. D200.1.1.0/24
18.コンピュータネットワークむずかしい

192.168.1.0/24 を、それぞれ最大 25 ホストの少なくとも 5 つのサブネットに分けなければなりません。最も適したプレフィックス長はどれですか?

  1. A/26
  2. B/25
  3. C/28
  4. D/27
19.IPv4 サブネット化ふつう
/?11111111111111111111111100000000ネットワーク部ホスト部

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

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

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

10.20.183.109/30
x =

3溶液

1.記数法

答え: U = 166

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

反転して 1 を足す

90 = 0101 1010
反転後: 1010 0101
+1 → 1010 0110

符号なしとして読む

1010 0110₂ = 256 − 90 = 166

答え

U = 166
2.記数法

答え: R = 192

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

ビットごとに

3 だけ左にシフトすると、すべてのビットが 3 桁左へ動きます。左端からはみ出したビットは失われ、右側には 0 が入ります。

0111 1000 << 3
= 1100 0000

結果の値

1100 0000₂ = 192

答え

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

答え: N = 6

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

真理値表を行ごとに見る

a = 1, b = 1, c = 1: b ↔ a = 1, c ∨ (b ↔ a) = 1, c ∨ b = 1, (c ∨ b) ↔ a = 1, (c ∨ (b ↔ a)) ∨ ((c ∨ b) ↔ a) = 1
a = 1, b = 1, c = 0: b ↔ a = 1, c ∨ (b ↔ a) = 1, c ∨ b = 1, (c ∨ b) ↔ a = 1, (c ∨ (b ↔ a)) ∨ ((c ∨ b) ↔ a) = 1
a = 1, b = 0, c = 1: b ↔ a = 0, c ∨ (b ↔ a) = 1, c ∨ b = 1, (c ∨ b) ↔ a = 1, (c ∨ (b ↔ a)) ∨ ((c ∨ b) ↔ a) = 1
a = 1, b = 0, c = 0: b ↔ a = 0, c ∨ (b ↔ a) = 0, c ∨ b = 0, (c ∨ b) ↔ a = 0, (c ∨ (b ↔ a)) ∨ ((c ∨ b) ↔ a) = 0
a = 0, b = 1, c = 1: b ↔ a = 0, c ∨ (b ↔ a) = 1, c ∨ b = 1, (c ∨ b) ↔ a = 0, (c ∨ (b ↔ a)) ∨ ((c ∨ b) ↔ a) = 1
a = 0, b = 1, c = 0: b ↔ a = 0, c ∨ (b ↔ a) = 0, c ∨ b = 1, (c ∨ b) ↔ a = 0, (c ∨ (b ↔ a)) ∨ ((c ∨ b) ↔ a) = 0
a = 0, b = 0, c = 1: b ↔ a = 1, c ∨ (b ↔ a) = 1, c ∨ b = 1, (c ∨ b) ↔ a = 0, (c ∨ (b ↔ a)) ∨ ((c ∨ b) ↔ a) = 1
a = 0, b = 0, c = 0: b ↔ a = 1, c ∨ (b ↔ a) = 1, c ∨ b = 0, (c ∨ b) ↔ a = 1, (c ∨ (b ↔ a)) ∨ ((c ∨ b) ↔ a) = 1

値が 1 の行を数える

(c ∨ (b ↔ a)) ∨ ((c ∨ b) ↔ a): 1, 1, 1, 0, 1, 0, 1, 1
N = 6

答え

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

答え: ∃x (A(x) ∧ ∀y ¬R(x, y))

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

否定を内側へ移す

¬∀x (A(x) → ∃y R(x, y)) ≡ ∃x (A(x) ∧ ∀y ¬R(x, y))

答え

∃x (A(x) ∧ ∀y ¬R(x, y))

ほかの選択肢は、量化子がそのままになっているか、量化子の順序が変わっているか、内側の式の否定が間違っているかのどれかです。

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

答え: AB = 11, CD = 11

カルノー図:セルはグレイコード(00, 01, 11, 10)の順に並んでいるので、端をまたぐものも含め、隣り合うセルはちょうど 1 つの変数だけが異なります。1 を、1, 2, 4, 8, 16 個のセルからなる長方形で、できるだけ大きく、できるだけ少ない数でグループ化し、すべての 1 を覆います。各グループは 1 つの積項で、グループの中で一定のままの変数からなります。2ᵏ 個のセルのグループでは k 個の変数が消えます。ドントケア(X)はグループを大きくするために使えますが、覆う必要はありません。代わりに 0 をグループ化すると、最小の POS 形が得られます。

各 1 の隣

隣り合う 1 がある 1 は、2 つ以上のグループに加わることができます。

m15: m14, m13, m11, m7 → 0
ABCD000111100001111011111111

孤立した 1

m15 = ABCD → AB = 11, CD = 11

答え

AB = 11, CD = 11
6.デジタル論理:ゲート・カルノー図・フリップフロップ

答え: Q = 14

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

エッジごとの状態

0000 → 1000 → 1100 → 1110 → 1111 → 0111 → 0011 → 0001 → 0000 → 1000 → 1100 → 1110

10 進値

1110₂ = 14

答え

Q = 14
7.整数論と合同式

答え: x = 16

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

11 の逆元

r = 17, t = 0
r = 11, q = 1, t = 1
r = 6, q = 1, t = −1
r = 5, q = 1, t = 2
r = 1, q = 5, t = −3
11−1 ≡ 14 (mod 17)

解く

x ≡ 14·6 = 84 ≡ 16 (mod 17)
確認: 11·16 = 176 ≡ 6 (mod 17)

答え

x = 16
8.整数論と合同式

答え: m = 582

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

秘密指数

n = 1147, φ(n) = 1080
d = 17−1 mod 1080 = 953

反復二乗法で復号する

953 = 512 + 256 + 128 + 32 + 16 + 8 + 1
7881 ≡ 788 (mod 1147)
7882 ≡ 417 (mod 1147)
7884 ≡ 692 (mod 1147)
7888 ≡ 565 (mod 1147)
78816 ≡ 359 (mod 1147)
78832 ≡ 417 (mod 1147)
78864 ≡ 692 (mod 1147)
788128 ≡ 565 (mod 1147)
788256 ≡ 359 (mod 1147)
788512 ≡ 417 (mod 1147)
788953 ≡ 788·565·359·417·565·359·417 ≡ 582 (mod 1147)

メッセージ

m = 582
確認: 58217 mod 1147 = 788

答え

m = 582
9.アルゴリズムと計算量

答え: D · 重複する部分問題と最適部分構造

これが答えになる理由

重複する部分問題の結果を保存する(メモ化または表計算)ことで繰り返しの処理を避け、指数時間のアルゴリズムを多項式時間に変えられます。

答え

D · 重複する部分問題と最適部分構造
10.アルゴリズムと計算量

答え: B · Θ(nlog₂ 7)、約 n2.81

これが答えになる理由

a = 7、b = 2 で、nlog₂ 7 が O(n²) の加算の作業量より支配的なので、約 n2.81 になります。

答え

B · Θ(nlog₂ 7)、約 n2.81
11.データ構造

答え: D · 右部分木の最も左のノード

これが答えになる理由

そのノードに近い大きいキーはすべて右部分木にあり、その中で最小のものはそこでの最も左のノードです。

答え

D · 右部分木の最も左のノード
12.データ構造

答え: A · 偽陽性はあり得るが、偽陰性はない

これが答えになる理由

ある要素に対応するビットのどれかが 0 なら確実に存在せず、すべて 1 ならおそらく存在します。ブルームフィルタは精度と引き換えに非常に少ないメモリで済みます。

答え

A · 偽陽性はあり得るが、偽陰性はない
13.グラフ理論

答え: H = 12

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

数える

H = (5 − 1)!/2 = 24/2 = 12

答え

H = 12
14.グラフ理論

答え: d(F) = 18

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

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

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

A (0): B: 15, C: 14
C (14): E: 15
B (15): D: 17
E (15): F: 25
D (17): F: 18
F (18)

最短経路

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

答え

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

答え: B · 学生と科目の両方への外部キーを持つ中間テーブルで

これが答えになる理由

多対多の関連には、例えば enrolment(student_id, course_id) のような連関(中間)テーブルが必要で、多くの場合複合主キーを持ちます。

答え

B · 学生と科目の両方への外部キーを持つ中間テーブルで
16.データベースと SQL

答え: C · 2NF だが 3NF ではない

これが答えになる理由

キーは 1 列なので 2NF は成り立ちますが、emp_id → dept_id → dept_name は推移的関数従属であり、3NF に違反します。

答え

C · 2NF だが 3NF ではない
17.コンピュータネットワーク

答え: B · 192.168.0.0/16

これが答えになる理由

プライベート範囲は 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 で、公共のインターネット上ではルーティングされません。

答え

B · 192.168.0.0/16
18.コンピュータネットワーク

答え: D · /27

これが答えになる理由

/27 では、それぞれ 30 個の使えるホストを持つサブネットが 8 つできます。/26 ではサブネットが 4 つしかなく、/28 ではサブネットあたり 14 ホストしか収容できません。

答え

D · /27
19.IPv4 サブネット化

答え: p = 24

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

必要なホストビット数

27 − 2 = 126 < 128
28 − 2 = 254 ≥ 128 → h = 8

プレフィックス長

p = 32 − 8 = 24

答え

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

答え: x = 108

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

ブロックサイズ

22 = 4

このホストのサブネット

ネットワーク: ⌊109/4⌋·4 = 108
ブロードキャスト: 108 + 4 − 1 = 111
使えるホスト: 109 … 110

答え

x = 108

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