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

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

รูปแบบ 8 บิต 0110 1000 เก็บจำนวนเต็มมีเครื่องหมายแบบ two's complement ค่าของมัน N ในเลขฐานสิบคือเท่าใด

0110 10008 bit
N =
2.ระบบเลขยาก
รหัส 1769 ตัว, b = ? บิต?2ᵇ⁻¹…?4?2?1

ระบบต้องให้รหัสฐานสองความยาวเท่ากันแก่สิ่งของ 1769 ชิ้น ชิ้นละหนึ่งรหัส ต้องใช้อย่างน้อยกี่บิต b

1769
b = bit
3.ตรรกศาสตร์ประพจน์และการพิสูจน์ปานกลาง
abcb ∧ c(b ∧ c) ∧ a(b ↔ c) → ((b ∧ c) ∧ a)111?110?101?100?011?010?001?000?

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

(b ↔ c) → ((b ∧ c) ∧ a)
N =
4.ตรรกศาสตร์ประพจน์และการพิสูจน์ยาก

ตารางค่าความจริง 16 แถวมีกี่แถวที่ทำให้ (¬(r ↔ ¬p) → q) ∧ ((¬s → r) ∨ (p → s)) เป็นจริง เรียกจำนวนนี้ว่า N

(¬(r ↔ ¬p) → q) ∧ ((¬s → r) ∨ (p → s))
N =
5.ตรรกะดิจิทัล: เกต แผนที่คาร์โนห์ และฟลิปฟล็อปปานกลาง
ABCD000111100001111000111302141507161120130150141809011110

ใช้แผนที่คาร์โนห์หารูปผลบวกของผลคูณ (SOP) ที่น้อยที่สุดของ F(A, B, C, D) = Σm(1, 3, 4, 5, 6, 8, 10, 12) มีลิเทอรัลรวมกี่ตัว L (ตัวแปรที่มีไพรม์นับเป็นหนึ่งลิเทอรัล)

F(A, B, C, D) = Σm(1, 3, 4, 5, 6, 8, 10, 12)
L =
6.ตรรกะดิจิทัล: เกต แผนที่คาร์โนห์ และฟลิปฟล็อปยาก
ABCD0001111000011110101103X214051716012013015014X819011110

จงหารูป SOP ที่น้อยที่สุดของ F(A, B, C, D) = Σm(0, 1, 4, 6, 7, 9, 10) + d(2, 8) โดย d แทนเงื่อนไขไม่สนใจ มีกี่ลิเทอรัล L

F(A, B, C, D) = Σm(0, 1, 4, 6, 7, 9, 10) + d(2, 8)
L =
7.ทฤษฎีจำนวนและเลขคณิตมอดูลาร์ปานกลาง

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

x ≡ 3 (mod 4)x ≡ 2 (mod 9)
x =
8.ทฤษฎีจำนวนและเลขคณิตมอดูลาร์ยาก
78c = me​ mod n?m = cd​ mod nm(n, e) = (155, 13)d

เข้ารหัสข้อความ m = 78 ด้วยกุญแจสาธารณะ RSA (n, e) = (155, 13) จงหาข้อความเข้ารหัส c

n = 155e = 13m = 78
c =
9.อัลกอริทึมและความซับซ้อนปานกลาง

เหตุใดการโปรแกรมพลวัตจึงไม่ช่วยเร่ง merge sort ได้จริง

  1. Aการโปรแกรมพลวัตใช้ได้กับปัญหากราฟเท่านั้น ไม่ใช่กับอาร์เรย์
  2. BMerge sort เป็น O(n) อยู่แล้ว
  3. CMerge sort ไม่มีโครงสร้างแบบเรียกซ้ำ
  4. Dปัญหาย่อยของมันไม่ซ้อนทับกัน จึงไม่มีอะไรให้ใช้ซ้ำ
10.อัลกอริทึมและความซับซ้อนยาก

ขอบเขตใดถูกต้องสำหรับ log(n!)

  1. AΘ(n log n)
  2. BΘ(n)
  3. CΘ(log n)
  4. DΘ(n²)
11.โครงสร้างข้อมูลปานกลาง

เมทริกซ์ประชิด (adjacency matrix) ของกราฟที่มี V จุดยอดใช้หน่วยความจำเท่าใด

  1. AO(V²)
  2. BO(V + E)
  3. CO(log V)
  4. DO(E)
12.โครงสร้างข้อมูลยาก

โครงสร้างข้อมูลใดรองรับแคช LRU (least recently used) ที่ get และ put เป็น O(1)

  1. Aอาร์เรย์เรียงลำดับเดียว
  2. Bสแตกเท่านั้น
  3. Cbinary search tree เท่านั้น
  4. Dhash map ร่วมกับลิงก์ลิสต์สองทิศทาง
13.ทฤษฎีกราฟปานกลาง

กราฟบริบูรณ์ K4 มีวงจรแฮมิลตันที่แตกต่างกันกี่วงจร H วงจรที่ต่างกันเพียงจุดยอดเริ่มต้นหรือทิศทางนับเป็นวงจรเดียวกัน

K4
H =
14.ทฤษฎีกราฟยาก
109147581662ABCDEFG

จงหาน้ำหนักรวม W ของต้นไม้ทอดข้ามค่าน้อยที่สุดของกราฟถ่วงน้ำหนัก

|V| = 7|E| = 9
W =
15.ฐานข้อมูลและ SQLปานกลาง

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

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

มีดัชนีประกอบบน (last_name, first_name) เงื่อนไขใดใช้ดัชนีนี้ได้อย่างมีประสิทธิภาพที่สุด?

  1. AWHERE last_name = 'Jansen'
  2. BWHERE UPPER(first_name) = 'EVA'
  3. CWHERE first_name LIKE '%a'
  4. DWHERE first_name = 'Eva'
17.เครือข่ายคอมพิวเตอร์ปานกลาง

เหตุใด Wi-Fi จึงใช้การหลีกเลี่ยงการชน (CSMA/CA) แทนการตรวจจับการชน?

  1. AWi-Fi อนุญาตเพียงหนึ่งอุปกรณ์ต่อเครือข่าย
  2. Bการตรวจจับการชนใช้ได้เฉพาะกับสายใยแก้วนำแสง ไม่ใช่ช่องสัญญาณวิทยุไร้สายที่ใช้ร่วมกัน
  3. Cสถานีไร้สายตรวจจับการชนได้ไม่น่าเชื่อถือขณะที่กำลังส่ง
  4. Dสัญญาณวิทยุไม่เคยชนกัน
18.เครือข่ายคอมพิวเตอร์ยาก

การค้นหา DNS โดยปกติใช้ UDP เมื่อใดที่ DNS มักใช้ TCP แทน?

  1. Aสำหรับการตอบกลับที่ใหญ่เกินกว่า UDP และสำหรับการถ่ายโอนโซน
  2. Bเฉพาะการค้นหาย้อนกลับของที่อยู่ IP
  3. Cเฉพาะเมื่อชื่อโดเมนยาวกว่าสิบตัวอักษร
  4. Dสำหรับทุกการค้นหาที่ส่งจากเว็บเบราว์เซอร์
19.การแบ่งซับเน็ต IPv4ปานกลาง
/?11111111111111111111111110000000บิตเครือข่ายบิตโฮสต์

แผนกหนึ่งต้องการที่อยู่โฮสต์ 109 ที่อยู่ในซับเน็ตเดียว ความยาวพรีฟิกซ์ที่ยาวที่สุด p (ซับเน็ตเล็กที่สุด) ที่ใหญ่พอคือเท่าใด

109 hosts
p =
20.การแบ่งซับเน็ต IPv4ยาก
ออคเต็ตสุดท้าย = 3012806403201608041211เครือข่ายโฮสต์

โฮสต์มีที่อยู่ 10.20.4.3/27 ตัวเลขสุดท้าย (ออคเต็ตที่สี่) x ของที่อยู่บรอดคาสต์ของซับเน็ตคือเท่าใด

10.20.4.3/27
x =

3สารละลาย

1.ระบบเลข

คำตอบ: N = 104

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

บวกค่าประจำตำแหน่ง

บิตอื่นยังคงมีค่าเป็นบวกตามปกติ

64 + 32 + 8 = 104

คำตอบ

N = 104
2.ระบบเลข

คำตอบ: b = 11 bit

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

กำลังของสอง

210 = 1024 < 1769
211 = 2048 ≥ 1769

คำตอบ

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

คำตอบ: N = 5

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

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

a = 1, b = 1, c = 1: b ↔ c = 1, b ∧ c = 1, (b ∧ c) ∧ a = 1, (b ↔ c) → ((b ∧ c) ∧ a) = 1
a = 1, b = 1, c = 0: b ↔ c = 0, b ∧ c = 0, (b ∧ c) ∧ a = 0, (b ↔ c) → ((b ∧ c) ∧ a) = 1
a = 1, b = 0, c = 1: b ↔ c = 0, b ∧ c = 0, (b ∧ c) ∧ a = 0, (b ↔ c) → ((b ∧ c) ∧ a) = 1
a = 1, b = 0, c = 0: b ↔ c = 1, b ∧ c = 0, (b ∧ c) ∧ a = 0, (b ↔ c) → ((b ∧ c) ∧ a) = 0
a = 0, b = 1, c = 1: b ↔ c = 1, b ∧ c = 1, (b ∧ c) ∧ a = 0, (b ↔ c) → ((b ∧ c) ∧ a) = 0
a = 0, b = 1, c = 0: b ↔ c = 0, b ∧ c = 0, (b ∧ c) ∧ a = 0, (b ↔ c) → ((b ∧ c) ∧ a) = 1
a = 0, b = 0, c = 1: b ↔ c = 0, b ∧ c = 0, (b ∧ c) ∧ a = 0, (b ↔ c) → ((b ∧ c) ∧ a) = 1
a = 0, b = 0, c = 0: b ↔ c = 1, b ∧ c = 0, (b ∧ c) ∧ a = 0, (b ↔ c) → ((b ∧ c) ∧ a) = 0

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

(b ↔ c) → ((b ∧ c) ∧ a): 1, 1, 1, 0, 0, 1, 1, 0
N = 5

คำตอบ

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

คำตอบ: N = 10

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

คอลัมน์

¬p; r ↔ ¬p; ¬(r ↔ ¬p); ¬(r ↔ ¬p) → q; ¬s; ¬s → r; p → s; (¬s → r) ∨ (p → s); (¬(r ↔ ¬p) → q) ∧ ((¬s → r) ∨ (p → s))

แยกตาม p

p = 1: 4
p = 0: 6
N = 4 + 6 = 10

คำตอบ

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

คำตอบ: L = 15

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

ABCD000111100001111000111302141507161120130150141809011110

จัดกลุ่ม 1

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

BC′D′
A′C′D
A′B′D
A′BD′
AB′D′

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

F = BC′D′ + A′C′D + A′B′D + A′BD′ + AB′D′
L = 15

คำตอบ

L = 15

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

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

คำตอบ: L = 9

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

ไพรม์อิมพลิแคนต์

กลุ่มที่ใหญ่ที่สุดที่สร้างได้จาก 1 และ X

B′D′, B′C′, A′D′, A′BC
ABCD0001111000011110101103X214051716012013015014X819011110

การครอบคลุมที่น้อยที่สุด

F = B′D′ + B′C′ + A′D′ + A′BC
L = 9

คำตอบ

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

คำตอบ: x = 11

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

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

3 + 4k ≡ 2 (mod 9) → 4k ≡ 8 (mod 9)
k ≡ 7·8 ≡ 2 (mod 9)

ผลลัพธ์

x = 3 + 4·2 = 11
x = 11
ตรวจสอบ: 11 mod 4 = 3, 11 mod 9 = 2

คำตอบ

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

คำตอบ: c = 128

เลขยกกำลังมอดูลาร์และ 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

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

13 = 8 + 4 + 1
781 ≡ 78 (mod 155)
782 ≡ 39 (mod 155)
784 ≡ 126 (mod 155)
788 ≡ 66 (mod 155)
7813 ≡ 78·126·66 ≡ 128 (mod 155)

ข้อความเข้ารหัส

c = 128

คำตอบ

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

คำตอบ: D · ปัญหาย่อยของมันไม่ซ้อนทับกัน จึงไม่มีอะไรให้ใช้ซ้ำ

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

ครึ่งของ merge sort ไม่ซ้อนกันและแต่ละส่วนถูกแก้ครั้งเดียว DP ช่วยเฉพาะเมื่อปัญหาย่อยเกิดซ้ำ เช่น ฟีโบนักชี

คำตอบ

D · ปัญหาย่อยของมันไม่ซ้อนทับกัน จึงไม่มีอะไรให้ใช้ซ้ำ
10.อัลกอริทึมและความซับซ้อน

คำตอบ: A · Θ(n log n)

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

log(n!) ≤ n log n และตัวคูณที่ใหญ่ที่สุด n / 2 ตัวให้ log(n!) ≥ (n / 2) log(n / 2) นี่คือเหตุที่การเรียงแบบเปรียบเทียบต้องใช้ Ω(n log n)

คำตอบ

A · Θ(n log n)
11.โครงสร้างข้อมูล

คำตอบ: A · O(V²)

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

เมทริกซ์ประชิดเก็บ V × V ช่อง มีประสิทธิภาพสำหรับกราฟหนาแน่น ส่วนรายการประชิดใช้ O(V + E) ดีกว่าสำหรับกราฟเบาบาง

คำตอบ

A · O(V²)
12.โครงสร้างข้อมูล

คำตอบ: D · hash map ร่วมกับลิงก์ลิสต์สองทิศทาง

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

Hash map หาโหนดใน O(1) และลิงก์ลิสต์สองทิศทางย้ายรายการที่เข้าถึงไปด้านหน้าและขับออกจากด้านหลังใน O(1)

คำตอบ

D · hash map ร่วมกับลิงก์ลิสต์สองทิศทาง
13.ทฤษฎีกราฟ

คำตอบ: H = 3

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

นับ

H = (4 − 1)!/2 = 6/2 = 3

คำตอบ

H = 3
14.ทฤษฎีกราฟ

คำตอบ: W = 40

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

ขั้นตอนวิธีของครัสคัล

GE (2): เลือก
EF (5): เลือก
GD (6): เลือก
DE (7): ข้าม ทำให้เกิดวัฏจักร
GB (8): เลือก
BC (9): เลือก
AC (10): เลือก

น้ำหนักรวม

W = 2 + 5 + 6 + 8 + 9 + 10 = 40

คำตอบ

W = 40
15.ฐานข้อมูลและ SQL

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

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

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

คำตอบ

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

คำตอบ: A · WHERE last_name = 'Jansen'

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

ดัชนี B-tree ประกอบเรียงตาม last_name แล้วจึง first_name การค้นหาด้วยคอลัมน์นำจึงใช้ได้ แต่ first_name เพียงอย่างเดียวใช้ลำดับนี้ไม่ได้

คำตอบ

A · WHERE last_name = 'Jansen'
17.เครือข่ายคอมพิวเตอร์

คำตอบ: C · สถานีไร้สายตรวจจับการชนได้ไม่น่าเชื่อถือขณะที่กำลังส่ง

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

เครื่องส่งวิทยุไม่ได้ยินสัญญาณอ่อนอื่นขณะส่ง และบางสถานีถูกซ่อนจากกัน ดังนั้น 802.11 รอเวลา backoff แบบสุ่มและใช้การตอบรับ

คำตอบ

C · สถานีไร้สายตรวจจับการชนได้ไม่น่าเชื่อถือขณะที่กำลังส่ง
18.เครือข่ายคอมพิวเตอร์

คำตอบ: A · สำหรับการตอบกลับที่ใหญ่เกินกว่า UDP และสำหรับการถ่ายโอนโซน

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

หากการตอบกลับ UDP ถูกตัดทอน รีโซลเวอร์ลองใหม่ผ่าน TCP การถ่ายโอนโซนระหว่างเนมเซิร์ฟเวอร์ก็ใช้ TCP เพราะมีข้อมูลมาก

คำตอบ

A · สำหรับการตอบกลับที่ใหญ่เกินกว่า UDP และสำหรับการถ่ายโอนโซน
19.การแบ่งซับเน็ต IPv4

คำตอบ: p = 25

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

บิตโฮสต์ที่ต้องใช้

26 − 2 = 62 < 109
27 − 2 = 126 ≥ 109 → h = 7

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

p = 32 − 7 = 25

คำตอบ

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

คำตอบ: x = 31

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

ขนาดบล็อก

25 = 32

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

เครือข่าย: ⌊3/32⌋·32 = 0
บรอดคาสต์: 0 + 32 − 1 = 31
โฮสต์ที่ใช้ได้: 1 … 30

คำตอบ

x = 31

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