พื้นฐานวิทยาการคอมพิวเตอร์: ชุดสรุปเร่งรัด

สรุปสูตร ขั้นตอนวิธีทำที่สำคัญของทุกหัวข้อ และโจทย์ฝึก 20 ข้อ พร้อมเฉลยละเอียดไว้ท้ายเล่ม

โจทย์ใหม่กลับไปที่รายวิชา

ในหน้าต่างพิมพ์ ให้เลือก “บันทึกเป็น PDF” เพื่อเก็บสำเนาไว้ในอุปกรณ์ของคุณ

1สูตรและวิธีทำ

ระบบเลข

ค่าประจำตำแหน่ง
ฐานสอง 2k, ฐานแปด 8k, ฐานสิบหก 16k
เป็นเลขฐานสิบ
Σ dk·bk
จากเลขฐานสิบ
หารด้วยฐาน อ่านเศษจากล่างขึ้นบน
ฐานสิบหก ↔ ฐานสอง
เลขฐานสิบหกหนึ่งหลัก = 4 บิต
two’s complement
กลับบิตแล้วบวก 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)
โมดัสโพเนนส์ โมดัสโทลเลนส์
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ⁿ สถานะ; มอด N: n ที่น้อยที่สุดที่ 2ⁿ ≥ N; fout = fclk/N
ตัวนับริปเปิล
fmax = 1/(n·tpd)
ตัวนับริงและตัวนับจอห์นสัน
n และ 2n สถานะ

วิธีการ

  1. สำหรับวงจร ให้ทำจากอินพุตไปถึงเอาต์พุตทีละเกตและเขียนค่าบนทุกเส้น หรือเขียนนิพจน์ของมันแล้วเติมตารางค่าความจริง
  2. สำหรับการทำให้ง่าย ให้ใส่ 1 (และค่าไม่สนใจเป็น X) ลงในแผนที่คาร์โนห์ที่มีแถวและคอลัมน์เรียงตามรหัสเกรย์: 00, 01, 11, 10
  3. ครอบคลุม 1 ด้วยกลุ่ม 1, 2, 4, 8 หรือ 16 เซลล์ให้น้อยที่สุดและใหญ่ที่สุดเท่าที่เป็นไปได้ โดยพันข้ามขอบ แต่ละกลุ่มคือหนึ่งพจน์ผลคูณที่ประกอบด้วยตัวแปรที่คงที่ จัดกลุ่ม 0 สำหรับรูป POS
  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. สำหรับ ห.ร.ม. ให้หารซ้ำด้วยขั้นตอนวิธีของยูคลิด เศษที่ไม่เป็นศูนย์ตัวสุดท้ายคือ ห.ร.ม.
  3. สำหรับตัวผกผัน ให้ทำขั้นตอนวิธีแบบขยาย และเก็บสัมประสิทธิ์ของ a ถ้าเป็นลบให้บวก n
  4. แก้ a·x ≡ b โดยคูณด้วย a⁻¹ รวมสองความสอดคล้องโดยเขียน x = r₁ + m₁k
  5. สำหรับเลขยกกำลัง ให้เขียนเลขชี้กำลังเป็นเลขฐานสองแล้วยกกำลังสองซ้ำ ใน 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. สำหรับโจทย์ออยเลอร์ ให้ตรวจว่ากราฟเชื่อมโยงกัน และนับจุดยอดที่มีดีกรีคี่
  3. สำหรับต้นไม้ ให้ใช้ว่ามี n − 1 เส้นเชื่อม และเล็มมาการจับมือ
  4. สำหรับไดก์สตรา ให้เก็บตารางระยะทางชั่วคราว และยืนยันจุดยอดที่ยังไม่ยืนยันซึ่งมีค่าน้อยที่สุดในแต่ละรอบ
  5. สำหรับต้นไม้ทอดข้ามค่าน้อยที่สุด ให้เรียงเส้นเชื่อมตามน้ำหนักและข้ามทุกเส้นที่ทำให้เกิดวัฏจักร (ครัสคัล) หรือขยายต้นไม้ต้นเดียวจากจุดยอดเริ่มต้น (พริม)

การแบ่งซับเน็ต IPv4

โฮสต์ต่อซับเน็ต
2(32 − prefix) − 2 (/31: 2, /32: 1)
ขนาดบล็อก
256 − (mask octet)
ที่อยู่เครือข่าย
IP AND มาสก์
ที่อยู่บรอดคาสต์
IP OR (NOT mask): บิตโฮสต์ทั้งหมดเป็น 1
ซับเน็ตจาก n บิตที่ยืม
2n

2โจทย์ฝึก

1.ระบบเลขปานกลาง
two's complement 8 บิต0−12806403201608040201

ตั้งบิตให้เก็บ −58 ใน two's complement 8 บิต อ่านเป็นจำนวนไม่มีเครื่องหมาย ค่าของรูปแบบ U เป็นเท่าใด

N = −588 bit
U =
2.ระบบเลขยาก
24 bit1 px256 px256 pxM = ? KiB

ภาพที่ไม่บีบอัดมีขนาด 256 × 256 พิกเซล และมี 24 บิตต่อพิกเซล ใช้หน่วยความจำ M เท่าใด ในหน่วย KiB (1 KiB = 1024 ไบต์)

256 × 256 px24 bit/px1 KiB = 1024 B
M = KiB
3.ตรรกศาสตร์ประพจน์และการพิสูจน์ปานกลาง
pqrq → p(q → p) ∧ q(r → p) → ((q → p) ∧ q)111?110?101?100?011?010?001?000?

ในตารางค่าความจริง 8 แถวของ (r → p) → ((q → p) ∧ q) มีกี่แถวที่เป็นจริง เรียกจำนวนนี้ว่า N

(r → p) → ((q → p) ∧ q)
N =
4.ตรรกศาสตร์ประพจน์และการพิสูจน์ยาก
∀x (¬F(x) ∧ ¬G(x))∃x (¬F(x) ∧ ¬G(x))∀x (¬F(x) ∨ ¬G(x))∃x (¬F(x) ∨ ¬G(x))

ประโยคใดสมมูลกับ ¬∀x (F(x) ∨ G(x)) เมื่อย้ายนิเสธเข้าด้านในสุด ให้คลิกประโยคนั้น

¬∀x (F(x) ∨ G(x))
  1. 1∀x (¬F(x) ∧ ¬G(x))
  2. 2∃x (¬F(x) ∧ ¬G(x))
  3. 3∀x (¬F(x) ∨ ¬G(x))
  4. 4∃x (¬F(x) ∨ ¬G(x))
5.ตรรกะดิจิทัล: เกต แผนที่คาร์โนห์ และฟลิปฟล็อปปานกลาง
MUX0I0​1I1​CI2​CI3​ABS1​S0​F

มัลติเพล็กเซอร์ 4 ต่อ 1 มีอินพุตเลือก S₁ = A และ S₀ = B และอินพุตข้อมูลต่อเข้ากับ I₀ = 0, I₁ = 1, I₂ = C, I₃ = C จาก 8 ชุดของ A, B และ C มีกี่ชุดที่เอาต์พุต F = 1 จงหา N

I₀ = 0I₁ = 1I₂ = CI₃ = C
N =
6.ตรรกะดิจิทัล: เกต แผนที่คาร์โนห์ และฟลิปฟล็อปยาก
CLKT123456

ฟลิปฟล็อป T ที่ทริกเกอร์ขอบขาขึ้นเริ่มด้วย Q = 0 และได้รับอินพุตที่แสดงที่ขอบขาขึ้นของนาฬิกา 6 ขอบ Q เปลี่ยนสถานะกี่ครั้ง N

Q₀ = 0T
N =
7.ทฤษฎีจำนวนและเลขคณิตมอดูลาร์ปานกลาง

จงหาจำนวนเต็มบวกที่น้อยที่สุด x ที่ x ≡ 2 (mod 3) และ x ≡ 0 (mod 7)

x ≡ 2 (mod 3)x ≡ 0 (mod 7)
x =
8.ทฤษฎีจำนวนและเลขคณิตมอดูลาร์ยาก

14x ≡ 18 (mod 24) มีกี่คำตอบ N ใน {0, 1, …, 23}

14x ≡ 18 (mod 24)
N =
9.อัลกอริทึมและความซับซ้อนปานกลาง

ความซับซ้อนเชิงเวลาเฉลี่ยแบบกระจายต้นทุน (amortised) ของการต่อท้ายอาร์เรย์พลวัตที่เพิ่มความจุเป็นสองเท่าเมื่อเต็มคือเท่าใด

  1. AO(1)
  2. BO(log n)
  3. CO(n)
  4. DO(n²)
10.อัลกอริทึมและความซับซ้อนยาก

อัลกอริทึมของ Strassen คูณเมทริกซ์โดยใช้การคูณแบบเรียกซ้ำของบล็อกครึ่งขนาด 7 ครั้งแทนที่จะเป็น 8 ครั้ง เวลาทำงานของมันคือเท่าใด

  1. AΘ(n³)
  2. BΘ(n² log n)
  3. CΘ(n2)
  4. DΘ(nlog₂ 7) ประมาณ n2.81
11.โครงสร้างข้อมูลปานกลาง

โปรแกรมที่ทำงานอยู่ใช้โครงสร้างข้อมูลใดติดตามการเรียกฟังก์ชันที่กำลังทำงานและตัวแปรท้องถิ่น

  1. Aคิวหน่วยความจำฮีป
  2. Bตารางแฮชของฟังก์ชัน
  3. Cbinary search tree ของเฟรม
  4. Dสแตกการเรียก (call stack)
12.โครงสร้างข้อมูลยาก

ภายใต้การแฮชสม่ำเสมออย่างง่าย เวลาคาดหมายของการค้นหาในตารางแฮชแบบ chaining ที่มี n คีย์และ m ถังคือเท่าใด

  1. AO(m)
  2. BO(log n)
  3. CO(1 + α) เมื่อ α = n / m
  4. DO(n)
13.ทฤษฎีกราฟปานกลาง
ABCDEFวงจรออยเลอร์ทางเดินออยเลอร์ ไม่มีวงจรไม่ใช่ทั้งสองอย่าง

กราฟเชื่อมโยงนี้มีวงจรออยเลอร์ ทางเดินออยเลอร์ที่ไม่ใช่วงจร หรือไม่มีทั้งสองอย่าง ให้คลิกคำตอบของคุณ

|V| = 6|E| = 7
  1. 1วงจรออยเลอร์
  2. 2ทางเดินออยเลอร์ ไม่มีวงจร
  3. 3ไม่ใช่ทั้งสองอย่าง
14.ทฤษฎีกราฟยาก
1514411072213ABCDEFG

ใช้ขั้นตอนวิธีของไดก์สตราเพื่อหาความยาว d(F) ของเส้นทางที่สั้นที่สุดจาก A ไป F ในกราฟถ่วงน้ำหนัก

เริ่มต้น: Aสิ้นสุด: F
d(F) =
15.ฐานข้อมูลและ SQLปานกลาง

เหตุใด SELECT price * 2 AS double_price FROM t WHERE double_price > 10 จึงล้มเหลวในฐานข้อมูลส่วนใหญ่?

  1. Aชื่อแฝงห้ามมีขีดล่าง
  2. Bไม่อนุญาตให้คำนวณเลขคณิตในรายการ SELECT
  3. CWHERE เปรียบเทียบได้เฉพาะคอลัมน์ข้อความ
  4. DWHERE ถูกประเมินก่อนรายการ SELECT ชื่อแฝงจึงยังไม่มี
16.ฐานข้อมูลและ SQLยาก

เหตุใด NATURAL JOIN จึงถือว่าเสี่ยงในคิวรีที่ใช้งานจริง?

  1. Aเชื่อมบนทุกคอลัมน์ที่ชื่อเดียวกัน คอลัมน์ใหม่จึงอาจเปลี่ยนผลลัพธ์โดยไม่รู้ตัว
  2. Bคืนผลคูณคาร์ทีเซียนเสมอ
  3. Cเพิกเฉยคีย์หลักและคีย์นอกและเก็บเฉพาะแถว NULL
  4. Dไม่มีฐานข้อมูลใดรองรับ
17.เครือข่ายคอมพิวเตอร์ปานกลาง

RIP ใช้เมตริกใดเลือกเส้นทาง?

  1. Aแบนด์วิดท์ของลิงก์
  2. Bจำนวนฮอป (hop count)
  3. Cนโยบายทางธุรกิจ
  4. Dความล่าช้าที่วัดได้
18.เครือข่ายคอมพิวเตอร์ยาก

พีซีเครื่องหนึ่งเข้าถึงเครื่องพิมพ์ในซับเน็ตของตนได้แต่เข้าถึงสิ่งอื่นนอกซับเน็ตไม่ได้ ที่อยู่ IP และมาสก์ถูกต้อง ความบกพร่องใดมีแนวโน้มมากที่สุด?

  1. Aหน้าต่าง TCP เล็กเกินไป
  2. Bเกตเวย์เริ่มต้นหายไปหรือไม่ถูกต้อง
  3. Cการตั้งค่าเซิร์ฟเวอร์ DNS ผิดพลาด
  4. Dที่อยู่ MAC ซ้ำกันบนอินเทอร์เน็ต
19.การแบ่งซับเน็ต IPv4ปานกลาง
/24 → /2911111111111111111111111111111000บิตเครือข่ายบิตโฮสต์

เครือข่าย 192.168.194.0/24 ถูกแบ่งเป็นซับเน็ต /29 หมายเลข 1, 2, 3, … จากแอดเดรสต่ำสุด (ซับเน็ต 1 เริ่มที่ .0) ออกเท็ตที่สี่ x ของเน็ตเวิร์กแอดเดรสของซับเน็ต 5 คือเท่าใด

192.168.194.0/24/29ซับเน็ต 5 (ซับเน็ต 1 เริ่มที่ .0)
x =
20.การแบ่งซับเน็ต IPv4ยาก
ออคเต็ตสุดท้าย = 196112816403201608140201เครือข่ายโฮสต์

โฮสต์มีที่อยู่ 10.20.142.196/27 ออคเต็ตที่สี่ x ของที่อยู่เครือข่ายคือเท่าใด

10.20.142.196/27
x =

3สารละลาย

1.ระบบเลข

คำตอบ: U = 198

การตั้งค่าบิต: แต่ละบิตมีค่าเป็นกำลังของสอง (128, 64, …, 1) เลขฐานสิบหกหนึ่งหลักคือสี่บิตพอดี และใน two's complement 8 บิต บิตซ้ายสุดมีค่า −128 การดำเนินการระดับบิตทำงานกับแต่ละตำแหน่งบิตแยกกัน

กลับบิตแล้วบวกหนึ่ง

58 = 0011 1010
ที่กลับบิตแล้ว: 1100 0101
+1 → 1100 0110

อ่านเป็นแบบไม่มีเครื่องหมาย

1100 0110₂ = 256 − 58 = 198

คำตอบ

U = 198
2.ระบบเลข

คำตอบ: M = 192 KiB

ระบบเลขตามตำแหน่ง: แต่ละหลักมีค่าเท่ากับค่าของหลักนั้นคูณกำลังของฐาน ในเลขฐานสองแต่ละตำแหน่งมีค่า 1, 2, 4, 8, 16, …; ในเลขฐานสิบหก 1, 16, 256, … โดย A–F แทน 10–15 ในระบบ two's complement 8 บิต บิตซ้ายสุดมีค่า −128 แทนที่จะเป็น +128 ซึ่งเป็นวิธีเก็บจำนวนลบ

บิตและไบต์

256·256·24 = 1572864 bit = 196608 B

แปลงเป็น KiB

196608/1024 = 192 KiB

คำตอบ

M = 192 KiB
3.ตรรกศาสตร์ประพจน์และการพิสูจน์

คำตอบ: N = 4

ตารางค่าความจริง: สูตรที่มีตัวแปรต่างกัน n ตัวมี 2ⁿ แถว หนึ่งแถวต่อทุกชุดของค่าความจริง (1 = จริง, 0 = เท็จ) ทำจากด้านในออกมาและให้ทุกประพจน์ย่อยมีคอลัมน์ของตัวเอง ¬a กลับค่า a ∧ b เป็น 1 เฉพาะเมื่อทั้งสองเป็น 1 a ∨ b เป็น 0 เฉพาะเมื่อทั้งสองเป็น 0 a → b เป็น 0 เฉพาะเมื่อ a = 1 และ b = 0 a ↔ b เป็น 1 เมื่อทั้งสองข้างเท่ากัน

ตารางค่าความจริงทีละแถว

p = 1, q = 1, r = 1: r → p = 1, q → p = 1, (q → p) ∧ q = 1, (r → p) → ((q → p) ∧ q) = 1
p = 1, q = 1, r = 0: r → p = 1, q → p = 1, (q → p) ∧ q = 1, (r → p) → ((q → p) ∧ q) = 1
p = 1, q = 0, r = 1: r → p = 1, q → p = 1, (q → p) ∧ q = 0, (r → p) → ((q → p) ∧ q) = 0
p = 1, q = 0, r = 0: r → p = 1, q → p = 1, (q → p) ∧ q = 0, (r → p) → ((q → p) ∧ q) = 0
p = 0, q = 1, r = 1: r → p = 0, q → p = 0, (q → p) ∧ q = 0, (r → p) → ((q → p) ∧ q) = 1
p = 0, q = 1, r = 0: r → p = 1, q → p = 0, (q → p) ∧ q = 0, (r → p) → ((q → p) ∧ q) = 0
p = 0, q = 0, r = 1: r → p = 0, q → p = 1, (q → p) ∧ q = 0, (r → p) → ((q → p) ∧ q) = 1
p = 0, q = 0, r = 0: r → p = 1, q → p = 1, (q → p) ∧ q = 0, (r → p) → ((q → p) ∧ q) = 0

นับแถวที่มีค่าเป็น 1

(r → p) → ((q → p) ∧ q): 1, 1, 0, 0, 1, 0, 1, 0
N = 4

คำตอบ

N = 4
4.ตรรกศาสตร์ประพจน์และการพิสูจน์

คำตอบ: ∃x (¬F(x) ∧ ¬G(x))

ตัวบ่งปริมาณและการอ้างเหตุผล: ¬∀x P(x) ≡ ∃x ¬P(x) และ ¬∃x P(x) ≡ ∀x ¬P(x) ย้ายนิเสธเข้าด้านใน สลับทุกตัวบ่งปริมาณที่นิเสธผ่าน และใส่นิเสธให้สูตรด้านในด้วยกฎของประพจน์ เช่น ¬(a → b) ≡ a ∧ ¬b การอ้างเหตุผลสมเหตุสมผลเมื่อบทสรุปเป็น 1 ในทุกแถวที่สมมติฐานทั้งหมดเป็น 1 แถวเดียวที่สมมติฐานเป็นจริงแต่บทสรุปเป็นเท็จคือตัวอย่างค้านและแสดงว่าการอ้างเหตุผลนั้นไม่สมเหตุสมผล

ย้ายนิเสธเข้าด้านใน

¬∀x (F(x) ∨ G(x)) ≡ ∃x (¬F(x) ∧ ¬G(x))

คำตอบ

∃x (¬F(x) ∧ ¬G(x))

ตัวเลือกอื่นอาจคงตัวบ่งปริมาณไว้ไม่เปลี่ยน เปลี่ยนลำดับของตัวบ่งปริมาณ หรือใส่นิเสธให้สูตรด้านในผิด

5.ตรรกะดิจิทัล: เกต แผนที่คาร์โนห์ และฟลิปฟล็อป

คำตอบ: N = 4

มัลติเพล็กเซอร์: มัลติเพล็กเซอร์ 2ⁿ ต่อ 1 ส่งอินพุตข้อมูลหนึ่งตัวไปยังเอาต์พุต สายเลือก (select) เมื่ออ่านเป็นเลขฐานสองจะเลือกว่าตัวใด สำหรับ MUX 4 ต่อ 1 ที่สายเลือก S₁S₀ = AB จะได้ F = A′B′·I₀ + A′B·I₁ + AB′·I₂ + AB·I₃ การต่ออินพุตข้อมูลเข้ากับ 0, 1, C หรือ C′ ทำให้ MUX สร้างฟังก์ชันใดก็ได้ของ A, B และ C ซึ่งเป็นวิธีที่พบบ่อยในการสร้างตรรกะด้วยชิปตัวเดียว

นิพจน์เอาต์พุต

F = A′B + AB′C + ABC

แถวที่ F = 1

ABC = 010, 011, 101, 111
N = 4

คำตอบ

N = 4
6.ตรรกะดิจิทัล: เกต แผนที่คาร์โนห์ และฟลิปฟล็อป

คำตอบ: N = 3

ฟลิปฟล็อปและตัวนับ: ฟลิปฟล็อปเปลี่ยนค่าเฉพาะที่ขอบแอ็กทีฟของสัญญาณนาฬิกา D คัดลอกอินพุต (Q⁺ = D); T สลับค่าเมื่อ T = 1; JK คงค่าสำหรับ 00 รีเซ็ตสำหรับ 01 เซตสำหรับ 10 และสลับค่าสำหรับ 11 ตัวนับฐานสอง n บิตมี 2ⁿ สถานะและนับมอดูโล 2ⁿ ตัวนับมอด N นับ 0, 1, …, N − 1 แล้ววนกลับเป็น 0 และต้องใช้ฟลิปฟล็อปจำนวน n ที่น้อยที่สุดที่ 2ⁿ ≥ N แต่ละภาคของตัวนับริปเปิลลดความถี่ลงครึ่งหนึ่ง ดังนั้นเอาต์พุตสุดท้ายของตัวนับมอด N ทำงานที่ fclk/N ตัวนับจอห์นสันที่มีฟลิปฟล็อป n ตัวมี 2n สถานะ ตัวนับริงมี n

Q หลังทุกขอบ

ฟลิปฟล็อป T สลับค่าทุกขอบขาขึ้นเมื่อ T = 1 และคงค่าเมื่อ T = 0

1: T = 0 → Q = 0
2: T = 1 → Q = 1
3: T = 1 → Q = 0
4: T = 0 → Q = 0
5: T = 0 → Q = 0
6: T = 1 → Q = 1

นับการเปลี่ยน

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

คำตอบ

N = 3
7.ทฤษฎีจำนวนและเลขคณิตมอดูลาร์

คำตอบ: x = 14

ตัวผกผันและความสอดคล้อง: a มีตัวผกผันมอดูโล n เมื่อ gcd(a, n) = 1 เท่านั้น ขั้นตอนวิธีของยูคลิดแบบขยายเขียน 1 = s·n + t·a แล้ว a⁻¹ ≡ t (mod n) ความสอดคล้อง a·x ≡ b (mod n) ที่ gcd(a, n) = 1 มีคำตอบ x ≡ a⁻¹·b ความสอดคล้องสองข้อ x ≡ r₁ (mod m₁) และ x ≡ r₂ (mod m₂) ที่มอดูลัสเป็นจำนวนเฉพาะสัมพัทธ์กันมีคำตอบเดียวมอดูโล m₁·m₂ (ทฤษฎีบทเศษเหลือของจีน) φ(n) ของออยเลอร์นับจำนวนตั้งแต่ 1 ถึง n ที่เป็นจำนวนเฉพาะสัมพัทธ์กับ n: φ(n) = n·∏(1 − 1/p)

ความสอดคล้องข้อแรก

x = 2 + 3k

ความสอดคล้องข้อที่สอง

2 + 3k ≡ 0 (mod 7) → 3k ≡ 5 (mod 7)
k ≡ 5·5 ≡ 4 (mod 7)

ผลลัพธ์

x = 2 + 3·4 = 14
x = 14
ตรวจสอบ: 14 mod 3 = 2, 14 mod 7 = 0

คำตอบ

x = 14
8.ทฤษฎีจำนวนและเลขคณิตมอดูลาร์

คำตอบ: N = 2

ตัวผกผันและความสอดคล้อง: a มีตัวผกผันมอดูโล n เมื่อ gcd(a, n) = 1 เท่านั้น ขั้นตอนวิธีของยูคลิดแบบขยายเขียน 1 = s·n + t·a แล้ว a⁻¹ ≡ t (mod n) ความสอดคล้อง a·x ≡ b (mod n) ที่ gcd(a, n) = 1 มีคำตอบ x ≡ a⁻¹·b ความสอดคล้องสองข้อ x ≡ r₁ (mod m₁) และ x ≡ r₂ (mod m₂) ที่มอดูลัสเป็นจำนวนเฉพาะสัมพัทธ์กันมีคำตอบเดียวมอดูโล m₁·m₂ (ทฤษฎีบทเศษเหลือของจีน) φ(n) ของออยเลอร์นับจำนวนตั้งแต่ 1 ถึง n ที่เป็นจำนวนเฉพาะสัมพัทธ์กับ n: φ(n) = n·∏(1 − 1/p)

หารด้วย gcd

gcd(14, 24) = 2
7x ≡ 9 (mod 12)

แก้ความสอดคล้องที่ลดรูปแล้ว

7−1 ≡ 7 (mod 12) → x ≡ 3 (mod 12)

คำตอบมอดูโล 24

x ∈ {3, 15}
N = 2

คำตอบ

N = 2
9.อัลกอริทึมและความซับซ้อน

คำตอบ: A · O(1)

เหตุผลที่เป็นคำตอบนี้

การคัดลอกสมาชิกทั้งหมดเกิดขึ้นเฉพาะที่เลขกำลังสอง เมื่อกระจายต้นทุนตลอดทุกการต่อท้าย ค่าเฉลี่ยต่อหนึ่งครั้งจึงคงที่

คำตอบ

A · O(1)
10.อัลกอริทึมและความซับซ้อน

คำตอบ: D · Θ(nlog₂ 7) ประมาณ n2.81

เหตุผลที่เป็นคำตอบนี้

เมื่อ a = 7 และ b = 2 ค่า nlog₂ 7 ครอบงำงานบวก O(n²) ได้ประมาณ n2.81

คำตอบ

D · Θ(nlog₂ 7) ประมาณ n2.81
11.โครงสร้างข้อมูล

คำตอบ: D · สแตกการเรียก (call stack)

เหตุผลที่เป็นคำตอบนี้

แต่ละการเรียก push เฟรมสแตกและแต่ละการคืนค่า pop ออก จึงเป็นเหตุที่การเรียกล่าสุดเสร็จก่อน

คำตอบ

D · สแตกการเรียก (call stack)
12.โครงสร้างข้อมูล

คำตอบ: C · O(1 + α) เมื่อ α = n / m

เหตุผลที่เป็นคำตอบนี้

การคำนวณแฮชมีต้นทุน O(1) และความยาวโซ่คาดหมายคือ α การรักษา α ให้มีขอบเขตด้วยการปรับขนาดจึงได้เวลาคาดหมาย O(1)

คำตอบ

C · O(1 + α) เมื่อ α = n / m
13.ทฤษฎีกราฟ

คำตอบ: วงจรออยเลอร์

ออยเลอร์ แฮมิลตัน และต้นไม้: กราฟเชื่อมโยงมีวงจรออยเลอร์ (ผ่านทุกเส้นเชื่อมครั้งเดียวและกลับจุดเริ่มต้น) เมื่อทุกจุดยอดมีดีกรีคู่ และมีทางเดินออยเลอร์ที่ไม่ใช่วงจรเมื่อมีจุดยอดดีกรีคี่พอดีสองจุด ทางเดินนั้นไปจากจุดยอดคี่จุดหนึ่งถึงอีกจุดหนึ่ง วงจรแฮมิลตันผ่านทุกจุดยอดครั้งเดียว Kn มีวงจรแบบนี้ (n − 1)!/2 วงจร ต้นไม้ที่มี n จุดยอดมี n − 1 เส้นเชื่อม และกราฟเชื่อมโยงที่มี m เส้นเชื่อมจะเหลือต้นไม้ทอดข้ามหลังเอาเส้นเชื่อมออก m − n + 1 เส้น

ดีกรี

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

จุดยอดคี่

0
วงจรออยเลอร์

คำตอบ

วงจรออยเลอร์
14.ทฤษฎีกราฟ

คำตอบ: d(F) = 30

เส้นทางที่สั้นที่สุดและต้นไม้ทอดข้าม: ขั้นตอนวิธีของไดก์สตรายืนยันหนึ่งจุดยอดต่อรอบ: จุดยอดที่ยังไม่ยืนยันซึ่งมีระยะทางชั่วคราวน้อยที่สุด ระยะทางของมันเป็นค่าสุดท้ายแล้ว และเพื่อนบ้าน v ทุกจุดได้ d(v) = min(d(v), d(u) + w(u, v)) ขั้นตอนวิธีของครัสคัลสร้างต้นไม้ทอดข้ามค่าน้อยที่สุดโดยเลือกเส้นเชื่อมจากเบาไปหนักและข้ามเส้นที่ทำให้เกิดวัฏจักร ขั้นตอนวิธีของพริมขยายต้นไม้หนึ่งต้นจากจุดยอดเริ่มต้นโดยเพิ่มเส้นเชื่อมที่เบาที่สุดที่ออกจากต้นไม้เสมอ ต้นไม้ทอดข้ามที่มี n จุดยอดมี n − 1 เส้นเชื่อม

ไดก์สตราทีละรอบ

แต่ละบรรทัด: จุดยอดที่ยืนยัน ระยะทางสุดท้ายของมัน และเพื่อนบ้านที่ระยะทางดีขึ้น

A (0): C: 15
C (15): B: 29, E: 16, G: 17
E (16): D: 26
G (17): B: 19
B (19): D: 23
D (23): F: 30
F (30)

เส้นทางที่สั้นที่สุด

A → C → G → B → D → F
d(F) = 30

คำตอบ

d(F) = 30
15.ฐานข้อมูลและ SQL

คำตอบ: D · WHERE ถูกประเมินก่อนรายการ SELECT ชื่อแฝงจึงยังไม่มี

เหตุผลที่เป็นคำตอบนี้

ในเชิงตรรกะ FROM และ WHERE ทำงานก่อน SELECT จึงให้ซ้ำนิพจน์ใน WHERE หรือใช้ซับคิวรี ส่วน ORDER BY ใช้ชื่อแฝงได้เพราะทำงานหลัง SELECT

คำตอบ

D · WHERE ถูกประเมินก่อนรายการ SELECT ชื่อแฝงจึงยังไม่มี
16.ฐานข้อมูลและ SQL

คำตอบ: A · เชื่อมบนทุกคอลัมน์ที่ชื่อเดียวกัน คอลัมน์ใหม่จึงอาจเปลี่ยนผลลัพธ์โดยไม่รู้ตัว

เหตุผลที่เป็นคำตอบนี้

natural join จับคู่ทุกคอลัมน์ที่ชื่อเหมือนกัน เช่น "name" หรือ "created_at" ที่ไม่เกี่ยวข้อง การใช้ ON หรือ USING แบบชัดเจนปลอดภัยกว่า

คำตอบ

A · เชื่อมบนทุกคอลัมน์ที่ชื่อเดียวกัน คอลัมน์ใหม่จึงอาจเปลี่ยนผลลัพธ์โดยไม่รู้ตัว
17.เครือข่ายคอมพิวเตอร์

คำตอบ: B · จำนวนฮอป (hop count)

เหตุผลที่เป็นคำตอบนี้

RIP เป็นโพรโทคอลแบบเวกเตอร์ระยะทางที่นับฮอป โดย 16 หมายถึงเข้าถึงไม่ได้ จึงจำกัดอยู่ที่เครือข่ายขนาดเล็ก

คำตอบ

B · จำนวนฮอป (hop count)
18.เครือข่ายคอมพิวเตอร์

คำตอบ: B · เกตเวย์เริ่มต้นหายไปหรือไม่ถูกต้อง

เหตุผลที่เป็นคำตอบนี้

โฮสต์ส่งแพ็กเก็ตนอกซับเน็ตไปยังเกตเวย์เริ่มต้น หากผิดหรือไม่มี ทราฟฟิกท้องถิ่นยังใช้ได้แต่เข้าถึงสิ่งใดภายนอกไม่ได้ แม้ใช้ที่อยู่ IP

คำตอบ

B · เกตเวย์เริ่มต้นหายไปหรือไม่ถูกต้อง
19.การแบ่งซับเน็ต IPv4

คำตอบ: x = 32

IPv4 subnetting: an address has 32 bits. The prefix /p says how many leading bits identify the network; the remaining 32 − p bits number the hosts. A subnet has 2³²⁻ᵖ addresses, but the first (network address) and last (broadcast address) cannot be given to hosts, so 2³²⁻ᵖ − 2 hosts fit. Exceptions: a /31 (point-to-point link, RFC 3021) uses both of its 2 addresses for hosts, and a /32 is one single address (a single host or a loopback).

ขนาดบล็อก

23 = 8

ซับเน็ตหมายเลข 5

เครือข่าย: (5 − 1)·8 = 32
บรอดคาสต์: 32 + 8 − 1 = 39

คำตอบ

x = 32
20.การแบ่งซับเน็ต IPv4

คำตอบ: x = 192

การแบ่งซับเน็ต IPv4: ที่อยู่มี 32 บิต พรีฟิกซ์ /p บอกว่าบิตนำหน้ากี่บิตระบุเครือข่าย ส่วน 32 − p บิตที่เหลือใช้ระบุเลขโฮสต์ ซับเน็ตมี 2³²⁻ᵖ ที่อยู่ แต่ที่อยู่แรก (ที่อยู่เครือข่าย) และที่อยู่สุดท้าย (ที่อยู่บรอดคาสต์) ใช้เป็นโฮสต์ไม่ได้ จึงมีโฮสต์ได้ 2³²⁻ᵖ − 2 เครื่อง ข้อยกเว้น: /31 (ลิงก์แบบจุดต่อจุด, RFC 3021) ใช้ทั้ง 2 แอดเดรสสำหรับโฮสต์ และ /32 เป็นแอดเดรสเดียว (โฮสต์เดียวหรือลูปแบ็ก)

ขนาดบล็อก

25 = 32

ซับเน็ตของโฮสต์นี้

เครือข่าย: ⌊196/32⌋·32 = 192
บรอดคาสต์: 192 + 32 − 1 = 223
โฮสต์ที่ใช้ได้: 193 … 222

คำตอบ

x = 192

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