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

สรุปสูตร ขั้นตอนวิธีทำที่สำคัญของทุกหัวข้อ และโจทย์ฝึก 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

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

N = −378 bit
U =
2.ระบบเลขยาก
คลิกบิตเพื่อตั้งค่า012806403201608040201

ตั้งบิตให้เป็นผลลัพธ์ 8 บิตของ 0100 0001 >> 3 ค่าของผลลัพธ์ R เป็นเท่าใดในเลขฐานสิบ

0100 0001>> 3
R =
3.ตรรกศาสตร์ประพจน์และการพิสูจน์ปานกลาง
b → cc ∨ ¬b¬c ∨ b¬c → ¬b

สูตรใดสมมูลเชิงตรรกะกับ c → b ให้คลิกสูตรนั้น

c → b
  1. 1b → c
  2. 2c ∨ ¬b
  3. 3¬c ∨ b
  4. 4¬c → ¬b
4.ตรรกศาสตร์ประพจน์และการพิสูจน์ยาก
∀x (¬P(x) → ¬Q(x))∀x (P(x) ∧ ¬Q(x))∃x (P(x) ∧ ¬Q(x))∀x (P(x) → ¬Q(x))

ประโยคใดสมมูลกับ ¬∃x (P(x) → Q(x)) เมื่อย้ายนิเสธเข้าด้านในสุด ให้คลิกประโยคนั้น

¬∃x (P(x) → Q(x))
  1. 1∀x (¬P(x) → ¬Q(x))
  2. 2∀x (P(x) ∧ ¬Q(x))
  3. 3∃x (P(x) ∧ ¬Q(x))
  4. 4∀x (P(x) → ¬Q(x))
5.ตรรกะดิจิทัล: เกต แผนที่คาร์โนห์ และฟลิปฟล็อปปานกลาง
ABCD000111100001111010111302040517160120131151140809011010

ใช้แผนที่คาร์โนห์หารูปผลบวกของผลคูณ (SOP) ที่น้อยที่สุดของ F(A, B, C, D) = Σm(0, 1, 3, 6, 7, 14, 15) มีกี่พจน์ผลคูณ N

F(A, B, C, D) = Σm(0, 1, 3, 6, 7, 14, 15)
N =
6.ตรรกะดิจิทัล: เกต แผนที่คาร์โนห์ และฟลิปฟล็อปยาก
DQ0​Q0​DQ1​Q1​DQ2​Q2​DQ3​Q3​DQ4​Q4​DQ5​Q5​CLKJOHNSON

ตัวนับจอห์นสัน (ริงบิด) ทำจากฟลิปฟล็อป D 6 ตัว โดยเอาต์พุตสุดท้ายที่กลับค่าป้อนกลับไปยังอินพุตแรก และเริ่มที่ศูนย์ทั้งหมด ผ่านกี่สถานะที่ต่างกัน N

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

จงหาตัวผกผันของ 12 มอดูโล 19: จำนวน x ที่ 0 < x < 19 และ 12·x ≡ 1 (mod 19)

a = 12n = 19
12−1 mod 19 =
8.ทฤษฎีจำนวนและเลขคณิตมอดูลาร์ยาก

ใช้การยกกำลังสองซ้ำเพื่อหา 395 mod 37

a = 3k = 95n = 37
395 mod 37 =
9.อัลกอริทึมและความซับซ้อนปานกลาง

ความซับซ้อนเชิงเวลาของ for i = 1 to n: (j = 1; while j < n: j = j × 2) คือเท่าใด

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

จะเกิดอะไรขึ้นถ้ามีผู้พบอัลกอริทึมเวลาพหุนามสำหรับปัญหา NP-complete หนึ่งข้อ

  1. Aเฉพาะปัญหานั้นปัญหาเดียวที่ย้ายเข้า P
  2. Bทุกปัญหาใน NP แก้ได้ในเวลาพหุนาม ดังนั้น P = NP
  3. Cอัลกอริทึมเวลาเอกซ์โพเนนเชียลทั้งหมดจะทำงานในเวลาเชิงเส้นทันที
  4. Dปัญหาการหยุดจะตัดสินได้
11.โครงสร้างข้อมูลปานกลาง

ต้นไม้ AVL และต้นไม้แดง–ดำ (red-black) รับประกัน

  1. Aการค้นหาในเวลาคงที่ทุกกรณี
  2. Bไม่มีโหนดใดมีลูกสองตัว
  3. Cความสูง O(log n) ผ่านการปรับสมดุลใหม่
  4. Dคีย์ถูกเก็บตามลำดับการแทรก
12.โครงสร้างข้อมูลยาก

การแฮชซ้อน (double hashing) ลดปัญหาใดของ linear probing เป็นหลัก

  1. Aความจำเป็นต้องเก็บคีย์ในตาราง
  2. Bต้นทุน O(n) ในการอ่านค่าของคีย์
  3. Cความจำเป็นต้องมีฟังก์ชันแฮช
  4. Dการจับกลุ่มปฐมภูมิ (primary clustering) ซึ่งช่องที่ถูกใช้ต่อกันเป็นสายยาว
13.ทฤษฎีกราฟปานกลาง
ABCDEFGวงจรออยเลอร์ทางเดินออยเลอร์ ไม่มีวงจรไม่ใช่ทั้งสองอย่าง

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

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

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

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

ตาราง employees มีคอลัมน์ manager_id ที่อ้างอิงพนักงานอีกคน จะแสดงพนักงานแต่ละคนคู่กับชื่อผู้จัดการได้อย่างไร?

  1. Aใช้ GROUP BY manager_id อย่างเดียว
  2. Bรวมตารางกับตัวมันเองด้วย UNION ALL และตัวกรอง WHERE
  3. Cเชื่อมตาราง employees กับตัวเองโดยใช้ชื่อแฝงสองชื่อ
  4. Dสร้างสำเนาที่สองของตารางบนดิสก์
16.ฐานข้อมูลและ SQLยาก

SELECT day, SUM(amount) OVER (ORDER BY day) FROM sales คำนวณอะไร?

  1. Aยอดรวมสะสมของ amount เรียงตาม day
  2. Bผลรวมของ amount ทั้งหมดในทุกแถว
  3. Cหนึ่งแถวต่อวัน โดยมีเฉพาะยอดรวมของวันนั้น
  4. Dค่าเฉลี่ยของ amount ต่อวัน
17.เครือข่ายคอมพิวเตอร์ปานกลาง

เราเตอร์มีเส้นทางสำหรับ 10.0.0.0/8 และ 10.1.0.0/16 ใช้เส้นทางใดสำหรับแพ็กเก็ตไปยัง 10.1.5.5?

  1. A10.1.0.0/16 เพราะเป็นพรีฟิกซ์ที่ตรงกันยาวที่สุด
  2. B10.0.0.0/8 เพราะครอบคลุมที่อยู่มากกว่า /16
  3. Cทั้งสองเส้นทาง โดยแบ่งทราฟฟิกเท่า ๆ กัน
  4. D10.0.0.0/8 เพราะถูกเพิ่มก่อน
18.เครือข่ายคอมพิวเตอร์ยาก

การโจมตีแบบวางยาแคช DNS (DNS cache poisoning) มีเป้าหมายเพื่อ:

  1. Aทำให้รีโซลเวอร์เก็บที่อยู่ IP ปลอมสำหรับโดเมนหนึ่ง
  2. Bทำให้เซิร์ฟเวอร์รับทราฟฟิกล้นเกินจนหยุดตอบคำถาม
  3. Cขโมยรหัสผ่าน Wi-Fi
  4. Dลบเซิร์ฟเวอร์ DNS
19.การแบ่งซับเน็ต IPv4ปานกลาง
/24 → /2811111111111111111111111111110000บิตเครือข่ายบิตโฮสต์

เครือข่าย 10.27.118.0/24 ถูกแบ่งเป็นซับเน็ตขนาดเท่ากันด้วยพรีฟิกซ์ /28 มีกี่ซับเน็ต N

10.27.118.0/24/28
N =
20.การแบ่งซับเน็ต IPv4ยาก
ออกเท็ตที่สาม 64 … 66012816403201608040201ร่วมกันเปลี่ยนแปลง

เราเตอร์มีเส้นทางไปยังเครือข่ายเหล่านี้: 10.77.64.0/24, 10.77.65.0/24, 10.77.66.0/24 ความยาวพรีฟิกซ์ยาวที่สุด p ของเส้นทางสรุปเส้นเดียวที่ครอบคลุมทั้งหมดคือเท่าใด

10.77.64.0/24 … 10.77.66.0/24
p =

3สารละลาย

1.ระบบเลข

คำตอบ: U = 219

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

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

37 = 0010 0101
ที่กลับบิตแล้ว: 1101 1010
+1 → 1101 1011

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

1101 1011₂ = 256 − 37 = 219

คำตอบ

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

คำตอบ: R = 8

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

ทีละบิต

การเลื่อนขวา 3 ตำแหน่งย้ายทุกบิตไปทางขวา 3 ตำแหน่ง บิตที่หลุดออกปลายขวาหายไปและศูนย์เข้ามาทางซ้าย

0100 0001 >> 3
= 0000 1000

ค่าของผลลัพธ์

0000 1000₂ = 8

คำตอบ

R = 8
3.ตรรกศาสตร์ประพจน์และการพิสูจน์

คำตอบ: ¬c ∨ b

ความสมมูลเชิงตรรกะ: สูตรสองสูตรสมมูลกัน (≡) เมื่อมีค่าเท่ากันทุกแถวของตารางค่าความจริง ซ้ำซ้อน (tautology) เป็น 1 ทุกแถว ขัดแย้ง (contradiction) เป็น 0 ทุกแถว และ contingency ไม่ใช่ทั้งสองอย่าง กฎที่มีประโยชน์: กฎของเดอมอร์แกน ¬(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)

กฎ

a → b เป็น 0 เฉพาะเมื่อ a = 1 และ b = 0 ดังนั้นจึงเท่ากับ ¬a ∨ b
c → b ≡ ¬c ∨ b

ตรวจสอบด้วยตารางค่าความจริง

b = 1, c = 1: 1 | 1 1 1 1
b = 1, c = 0: 1 | 0 0 1 0
b = 0, c = 1: 0 | 1 1 0 1
b = 0, c = 0: 1 | 1 1 1 1

คำตอบ

¬c ∨ b

คอลัมน์หลังเส้นคั่นคือตัวเลือกตามลำดับที่แสดง

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

คำตอบ: ∀x (P(x) ∧ ¬Q(x))

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

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

¬∃x (P(x) → Q(x)) ≡ ∀x (P(x) ∧ ¬Q(x))

คำตอบ

∀x (P(x) ∧ ¬Q(x))

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

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

คำตอบ: N = 3

แผนที่คาร์โนห์: เซลล์เรียงตามรหัสเกรย์ (00, 01, 11, 10) ดังนั้นเซลล์ที่อยู่ติดกัน รวมถึงเซลล์ที่อยู่ตรงข้ามขอบ ต่างกันเพียงตัวแปรเดียว จัดกลุ่ม 1 เป็นสี่เหลี่ยมที่มี 1, 2, 4, 8 หรือ 16 เซลล์ ให้ใหญ่ที่สุดและมีจำนวนกลุ่มน้อยที่สุดจนครอบคลุมทุก 1 แต่ละกลุ่มคือหนึ่งพจน์ผลคูณ: ตัวแปรที่คงที่ภายในกลุ่ม กลุ่มที่มี 2ᵏ เซลล์สูญเสียตัวแปรไป k ตัว ค่าไม่สนใจ (X) ใช้เพื่อทำให้กลุ่มใหญ่ขึ้นได้ แต่ไม่จำเป็นต้องถูกครอบคลุม การจัดกลุ่ม 0 แทนจะได้รูป POS ที่น้อยที่สุด

ABCD000111100001111010111302040517160120131151140809011010

จัดกลุ่ม 1

ทุกกลุ่มเป็นสี่เหลี่ยมของ 2ᵏ เซลล์ เซลล์ที่ขอบเป็นเพื่อนบ้านของเซลล์ที่ขอบตรงข้าม

BC
A′CD
A′B′C′

รูป SOP ที่น้อยที่สุด

F = BC + A′CD + A′B′C′
N = 3

คำตอบ

N = 3

มีการจัดกลุ่มอีกแบบที่มีขนาดเท่ากัน ซึ่งมีจำนวนพจน์และลิเทอรัลเท่ากัน

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

คำตอบ: N = 12

ฟลิปฟล็อปและตัวนับ: ฟลิปฟล็อปเปลี่ยนค่าเฉพาะที่ขอบแอ็กทีฟของสัญญาณนาฬิกา 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

ลำดับสำหรับฟลิปฟล็อป 6 ตัว

000000 → 100000 → 110000 → 111000 → 111100 → 111110 → 111111 → 011111 → 001111 → 000111 → 000011 → 000001

จำนวนสถานะ

N = 12

คำตอบ

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

คำตอบ: 12−1 mod 19 = 8

ตัวผกผันและความสอดคล้อง: 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)

ขั้นตอนวิธีของยูคลิดแบบขยาย

เศษ r แต่ละตัวเขียนเป็น r ≡ t·12 (mod 19)

r = 19, t = 0
r = 12, q = 1, t = 1
r = 7, q = 1, t = −1
r = 5, q = 1, t = 2
r = 2, q = 2, t = −3
r = 1, q = 2, t = 8

อินเวอร์ส

1 ≡ 8·12 (mod 19)
x = 8
ตรวจสอบ: 12·8 = 96 = 5·19 + 1

คำตอบ

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

คำตอบ: 395 mod 37 = 21

เลขยกกำลังมอดูลาร์และ RSA: คำนวณ aᵏ mod n ด้วยการยกกำลังสองซ้ำ: เขียน k เป็นเลขฐานสอง ยกกำลังสอง ลดค่าหลังทุกขั้นตอน และคูณเลขยกกำลังที่บิตเป็น 1 แฟร์มา: aᵖ⁻¹ ≡ 1 (mod p) สำหรับจำนวนเฉพาะ p ที่หาร a ไม่ลงตัว ดังนั้นลดเลขชี้กำลังมอดูโล 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

เลขชี้กำลังฐานสอง

95 = 10111112 = 64 + 16 + 8 + 4 + 2 + 1

การยกกำลังสองซ้ำ

31 ≡ 3 (mod 37)
32 ≡ 9 (mod 37)
34 ≡ 7 (mod 37)
38 ≡ 12 (mod 37)
316 ≡ 33 (mod 37)
332 ≡ 16 (mod 37)
364 ≡ 34 (mod 37)

คูณเลขยกกำลังที่ต้องใช้

395 ≡ 3·9·7·12·33·34 ≡ 21 (mod 37)

คำตอบ

395 mod 37 = 21
9.อัลกอริทึมและความซับซ้อน

คำตอบ: D · O(n log n)

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

ลูปชั้นในทำงานประมาณ log₂ n ครั้งสำหรับแต่ละรอบของลูปชั้นนอก n รอบ ได้ O(n log n)

คำตอบ

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

คำตอบ: B · ทุกปัญหาใน NP แก้ได้ในเวลาพหุนาม ดังนั้น P = NP

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

เนื่องจากทั้ง NP ลดรูปมาเป็นปัญหา NP-complete ใด ๆ ได้ในเวลาพหุนาม อัลกอริทึมเร็วสำหรับข้อหนึ่งจึงให้อัลกอริทึมเร็วสำหรับทั้งหมด

คำตอบ

B · ทุกปัญหาใน NP แก้ได้ในเวลาพหุนาม ดังนั้น P = NP
11.โครงสร้างข้อมูล

คำตอบ: C · ความสูง O(log n) ผ่านการปรับสมดุลใหม่

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

ต้นไม้ปรับสมดุลตัวเองรักษาความสูงเป็นลอการิทึม การค้นหา แทรก และลบจึงเป็น O(log n) ในกรณีเลวร้ายที่สุด

คำตอบ

C · ความสูง O(log n) ผ่านการปรับสมดุลใหม่
12.โครงสร้างข้อมูล

คำตอบ: D · การจับกลุ่มปฐมภูมิ (primary clustering) ซึ่งช่องที่ถูกใช้ต่อกันเป็นสายยาว

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

Linear probing ก้าวทีละ 1 สายที่ถูกใช้จึงโตและรวมกัน ส่วน double hashing ใช้แฮชที่สองกำหนดขนาดก้าว คีย์ต่างกันจึงตรวจลำดับต่างกัน

คำตอบ

D · การจับกลุ่มปฐมภูมิ (primary clustering) ซึ่งช่องที่ถูกใช้ต่อกันเป็นสายยาว
13.ทฤษฎีกราฟ

คำตอบ: ทางเดินออยเลอร์ ไม่มีวงจร

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

ดีกรี

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

จุดยอดคี่

C, E → 2
ทางเดินออยเลอร์ ไม่มีวงจร

คำตอบ

ทางเดินออยเลอร์ ไม่มีวงจร

ทางเดินออยเลอร์เริ่มที่จุดยอดคี่จุดหนึ่งและจบที่อีกจุดหนึ่ง

14.ทฤษฎีกราฟ

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

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

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

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

A (0): C: 7
C (7): B: 18, E: 19, G: 11
G (11): D: 14
D (14): B: 15, F: 19
B (15)
E (19)
F (19)

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

A → C → G → D → F
d(F) = 19

คำตอบ

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

คำตอบ: C · เชื่อมตาราง employees กับตัวเองโดยใช้ชื่อแฝงสองชื่อ

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

self-join เช่น FROM employees e JOIN employees m ON e.manager_id = m.id ทำให้ชื่อแฝงหนึ่งเป็นพนักงานและอีกชื่อเป็นผู้จัดการ

คำตอบ

C · เชื่อมตาราง employees กับตัวเองโดยใช้ชื่อแฝงสองชื่อ
16.ฐานข้อมูลและ SQL

คำตอบ: A · ยอดรวมสะสมของ amount เรียงตาม day

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

เมื่อมี ORDER BY และไม่ระบุเฟรมชัดเจน หน้าต่างครอบคลุมตั้งแต่แถวแรกถึงแถวปัจจุบัน (และแถวที่เท่ากัน) ทำให้ได้ผลรวมสะสม

คำตอบ

A · ยอดรวมสะสมของ amount เรียงตาม day
17.เครือข่ายคอมพิวเตอร์

คำตอบ: A · 10.1.0.0/16 เพราะเป็นพรีฟิกซ์ที่ตรงกันยาวที่สุด

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

การส่งต่อ IP ใช้การจับคู่พรีฟิกซ์ยาวที่สุด (longest prefix match): ในบรรดาเส้นทางที่ตรงกับปลายทาง จะเลือกเส้นทางที่มีมาสก์ยาวที่สุด

คำตอบ

A · 10.1.0.0/16 เพราะเป็นพรีฟิกซ์ที่ตรงกันยาวที่สุด
18.เครือข่ายคอมพิวเตอร์

คำตอบ: A · ทำให้รีโซลเวอร์เก็บที่อยู่ IP ปลอมสำหรับโดเมนหนึ่ง

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

การวางยาแทรกเรกคอร์ดปลอมลงในแคชของรีโซลเวอร์ DNSSEC เพิ่มลายเซ็นเพื่อให้รีโซลเวอร์ตรวจสอบเรกคอร์ดได้

คำตอบ

A · ทำให้รีโซลเวอร์เก็บที่อยู่ IP ปลอมสำหรับโดเมนหนึ่ง
19.การแบ่งซับเน็ต IPv4

คำตอบ: N = 16

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).

บิตที่ยืมมา

28 − 24 = 4

จำนวนซับเน็ต

N = 24 = 16

คำตอบ

N = 16

แต่ละซับเน็ต /28 มีโฮสต์ที่ใช้ได้ 24 − 2 = 14 โฮสต์

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

คำตอบ: p = 22

การสรุปเส้นทาง: เส้นทางสรุป a.b.c.0/p ครอบคลุมทุกเครือข่ายที่ p บิตแรกตรงกัน เขียนออกเท็ตที่ต่างกันของเครือข่ายแรกและสุดท้ายเป็นเลขฐานสอง จำนวนบิตนำหน้าที่ตรงกัน บวกบิตของออกเท็ตก่อนหน้า คือพรีฟิกซ์สรุปที่ยาวที่สุด

เทียบบิต

64 = 01000000
66 = 01000010
บิตนำหน้าที่ตรงกัน: 6

ความยาวพรีฟิกซ์

p = 16 + 6 = 22

คำตอบ

p = /22

เส้นทางสรุป: 10.77.64.0/22 (ครอบคลุมเครือข่าย 1 เครือข่ายที่ไม่อยู่ในรายการด้วย)

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