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

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

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

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

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

1010 0100<< 3
R =
3.ตรรกศาสตร์ประพจน์และการพิสูจน์ปานกลาง
r ∨ ¬p¬r ∧ p¬r ∧ ¬p¬r ∨ ¬p

สูตรใดสมมูลเชิงตรรกะกับ ¬(r ∨ p) ให้คลิกสูตรนั้น

¬(r ∨ p)
  1. 1r ∨ ¬p
  2. 2¬r ∧ p
  3. 3¬r ∧ ¬p
  4. 4¬r ∨ ¬p
4.ตรรกศาสตร์ประพจน์และการพิสูจน์ยาก
¬r ∧ pp¬rr

กำหนดสมมติฐาน r → p; ¬p บทสรุปใดตามมาจากสมมติฐานเหล่านี้ ให้คลิกบทสรุปนั้น

r → p¬p
  1. 1¬r ∧ p
  2. 2p
  3. 3¬r
  4. 4r
5.ตรรกะดิจิทัล: เกต แผนที่คาร์โนห์ และฟลิปฟล็อปปานกลาง
ABCD000111100001111000010312141517060121131151141819111010

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

F(A, B, C, D) = Σm(2, 4, 5, 7, 8, 9, 11, 13, 14, 15)
L =
6.ตรรกะดิจิทัล: เกต แผนที่คาร์โนห์ และฟลิปฟล็อปยาก
DQ3​Q3​DQ2​Q2​DQ1​Q1​DQ0​Q0​CLKRING

ตัวนับริง 4 บิต Q₃Q₂Q₁Q₀ เริ่มที่ 1000 ทุกขอบสัญญาณนาฬิกา บิตเลื่อนไปทางขวาหนึ่งตำแหน่ง (Q₃ → Q₂ → Q₁ → Q₀) และ Q₃ รับค่า Q₀ จงหาสถานะ Q = Q₃Q₂Q₁Q₀ เป็นเลขฐานสิบหลัง 3 ขอบสัญญาณนาฬิกา

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

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

a = 9n = 31
9−1 mod 31 =
8.ทฤษฎีจำนวนและเลขคณิตมอดูลาร์ยาก
mc = me​ mod ncm = cd​ mod nm(n, e) = (259, 19)d = ?

กุญแจ RSA ใช้จำนวนเฉพาะ p = 7 และ q = 37 และเลขชี้กำลังสาธารณะ e = 19 จงหาเลขชี้กำลังส่วนตัว d (0 < d < φ(n))

p = 7q = 37e = 19
d =
9.อัลกอริทึมและความซับซ้อนปานกลาง

การโปรแกรมพลวัต (dynamic programming) มีประโยชน์เมื่อปัญหามี

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

อัลกอริทึมการโปรแกรมพลวัตของ Held–Karp แก้ปัญหาพนักงานขายเดินทางได้อย่างแม่นยำ เวลาทำงานสำหรับ n เมืองคือเท่าใด

  1. AO(n³)
  2. BO(n!)
  3. CO(n² 2ⁿ)
  4. DO(2n²)
11.โครงสร้างข้อมูลปานกลาง

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

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

หากไม่มี union by rank หรือ path compression ต้นทุนในกรณีเลวร้ายที่สุดของ find หนึ่งครั้งในโครงสร้าง union-find ที่มี n สมาชิกคือเท่าใด

  1. AO(1)
  2. BO(n)
  3. CO(α(n))
  4. DO(log n)
13.ทฤษฎีกราฟปานกลาง

กราฟเชื่อมโยงมี 18 จุดยอดและ 29 เส้นเชื่อม ต้องเอาเส้นเชื่อมออกกี่เส้น k เพื่อให้เหลือต้นไม้ทอดข้าม

|V| = 18|E| = 29
k =
14.ทฤษฎีกราฟยาก
19131111439ABCDEF

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

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

นักเรียนลงเรียนได้หลายวิชา และวิชามีนักเรียนหลายคน จะสร้างแบบจำลองนี้ในตารางอย่างไร?

  1. Aด้วยตารางเชื่อม (junction table) ที่เก็บคีย์นอกไปยังทั้ง students และ courses
  2. Bด้วยคอลัมน์คีย์นอก course_id ในตาราง students ที่ชี้ไปยัง courses
  3. Cโดยรวม students และ courses เป็นตารางเดียว
  4. Dด้วยรายการ id ของวิชาที่เก็บในคอลัมน์เดียว
16.ฐานข้อมูลและ SQLยาก

แอปรัน UPDATE item SET qty = 4, version = 8 WHERE id = 1 AND version = 7 และรายงานความขัดแย้งหากไม่มีแถวถูกอัปเดต นี่คือเทคนิคใด?

  1. Aการแบ่งส่วนฐานข้อมูล (sharding)
  2. Btwo-phase locking แบบเข้มงวดโดยล็อกระดับแถว
  3. Cการควบคุมภาวะพร้อมกันแบบมองโลกในแง่ดี (optimistic concurrency control)
  4. Dwrite-ahead logging
17.เครือข่ายคอมพิวเตอร์ปานกลาง

ฟิลด์ใดในส่วนหัว IPv4 ป้องกันไม่ให้แพ็กเก็ตวนไปมาตลอดไปในลูปการกำหนดเส้นทาง?

  1. AIdentification
  2. BType of service
  3. CHeader checksum
  4. DTime to live (TTL)
18.เครือข่ายคอมพิวเตอร์ยาก

การแบ่งส่วน (fragmentation) ใน IPv6 ต่างจาก IPv4 อย่างไร?

  1. AIPv6 ไม่อนุญาตแพ็กเก็ตที่ใหญ่กว่า 576 ไบต์
  2. Bเราเตอร์ IPv6 แบ่งส่วนทุกแพ็กเก็ตที่ใหญ่กว่า 64 ไบต์ก่อนส่งต่อไปตามเส้นทาง
  3. CIPv6 แบ่งส่วนที่ชั้นทรานสปอร์ตภายใน TCP
  4. Dเราเตอร์ไม่แบ่งส่วนแพ็กเก็ต IPv6 เลย เฉพาะต้นทางทำได้ โดยใช้ path MTU discovery
19.การแบ่งซับเน็ต IPv4ปานกลาง
/24 → /2811111111111111111111111111110000บิตเครือข่ายบิตโฮสต์

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

192.168.103.0/24/28ซับเน็ต 6 (ซับเน็ต 1 เริ่มที่ .0)
x =
20.การแบ่งซับเน็ต IPv4ยาก

เครือข่าย 192.168.35.0/24 ถูกแบ่งด้วย VLSM สำหรับ LAN เหล่านี้: A: 11 โฮสต์, B: 97 โฮสต์, C: 4 โฮสต์, D: 55 โฮสต์ ซับเน็ตถูกจัดสรรจาก .0 ขึ้นไป โดย LAN ที่มีโฮสต์มากที่สุดมาก่อน แต่ละ LAN ได้ซับเน็ตที่เล็กที่สุดที่พอดี ออกเท็ตที่สี่ x ของที่อยู่เครือข่ายของ LAN C คือเท่าใด

A: 11B: 97C: 4D: 55
x =

3สารละลาย

1.ระบบเลข

คำตอบ: N = 72

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

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

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

64 + 8 = 72

คำตอบ

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

คำตอบ: R = 32

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

ทีละบิต

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

1010 0100 << 3
= 0010 0000

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

0010 0000₂ = 32

คำตอบ

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

คำตอบ: ¬r ∧ ¬p

ความสมมูลเชิงตรรกะ: สูตรสองสูตรสมมูลกัน (≡) เมื่อมีค่าเท่ากันทุกแถวของตารางค่าความจริง ซ้ำซ้อน (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) ≡ ¬a ∧ ¬b ตัว ∨ เปลี่ยนเป็น ∧ และทั้งสองส่วนถูกใส่นิเสธ
¬(r ∨ p) ≡ ¬r ∧ ¬p

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

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

คำตอบ

¬r ∧ ¬p

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

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

คำตอบ: ¬r

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

แถวที่สมมติฐานทั้งหมดเป็นจริง

p = 0, r = 0: ¬r ∧ p = 0, p = 0, ¬r = 1, r = 0

สรุป

¬r (โมดัสโทลเลนส์)

คำตอบ

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

คำตอบ: L = 17

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

ABCD000111100001111000010312141517060121131151141819111010

จัดกลุ่ม 1

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

BD
AD
A′BC′
AB′C′
ABC
A′B′CD′

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

F = BD + AD + A′BC′ + AB′C′ + ABC + A′B′CD′
L = 17

คำตอบ

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

คำตอบ: Q = 1

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

สถานะหลังทุกขอบ

1000 → 0100 → 0010 → 0001

ค่าฐานสิบ

0001₂ = 1

คำตอบ

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

คำตอบ: 9−1 mod 31 = 7

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

r = 31, t = 0
r = 9, q = 3, t = 1
r = 4, q = 2, t = −3
r = 1, q = 4, t = 7

อินเวอร์ส

1 ≡ 7·9 (mod 31)
x = 7
ตรวจสอบ: 9·7 = 63 = 2·31 + 1

คำตอบ

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

คำตอบ: d = 91

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

มอดูลัสและโทเทียนต์

n = 7·37 = 259
φ(n) = 6·36 = 216

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

r = 216, t = 0
r = 19, q = 11, t = 1
r = 7, q = 2, t = −11
r = 5, q = 1, t = 23
r = 2, q = 2, t = −34
r = 1, q = 2, t = 91

เลขชี้กำลังส่วนตัว

d = 91
ตรวจสอบ: 19·91 = 1729 = 8·216 + 1

คำตอบ

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

คำตอบ: B · ปัญหาย่อยที่ซ้อนทับกันและโครงสร้างย่อยเหมาะสมที่สุด

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

การเก็บผลของปัญหาย่อยที่ซ้อนทับกัน (memoisation หรือ tabulation) ช่วยหลีกเลี่ยงงานซ้ำ เปลี่ยนอัลกอริทึมแบบเอกซ์โพเนนเชียลให้เป็นพหุนาม

คำตอบ

B · ปัญหาย่อยที่ซ้อนทับกันและโครงสร้างย่อยเหมาะสมที่สุด
10.อัลกอริทึมและความซับซ้อน

คำตอบ: C · O(n² 2ⁿ)

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

มีสถานะประมาณ n 2ⁿ แต่ละสถานะคำนวณใน O(n) ซึ่งเป็นเอกซ์โพเนนเชียลแต่เร็วกว่าการลองทุกเส้นทาง (n − 1)! มาก

คำตอบ

C · O(n² 2ⁿ)
11.โครงสร้างข้อมูล

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

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

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

คำตอบ

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

คำตอบ: B · O(n)

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

การรวมอย่างไร้เดียงสาเชื่อมต้นไม้เป็นโซ่ยาวได้ find จึงอาจตามตัวชี้แม่ n − 1 ตัว ทั้งสองฮิวริสติกทำให้ใกล้ค่าคงที่

คำตอบ

B · O(n)
13.ทฤษฎีกราฟ

คำตอบ: k = 12

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

เส้นเชื่อมของต้นไม้ทอดข้าม

18 − 1 = 17

เส้นเชื่อมที่ต้องเอาออก

k = 29 − 17 = 12

คำตอบ

k = 12
14.ทฤษฎีกราฟ

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

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

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

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

A (0): B: 1, C: 9
B (1): D: 12, E: 10
C (9)
E (10)
D (12): F: 15
F (15)

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

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

คำตอบ

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

คำตอบ: A · ด้วยตารางเชื่อม (junction table) ที่เก็บคีย์นอกไปยังทั้ง students และ courses

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

ความสัมพันธ์แบบหลายต่อหลายต้องใช้ตารางสัมพันธ์ (junction) เช่น enrolment(student_id, course_id) ซึ่งมักมีคีย์หลักประกอบ

คำตอบ

A · ด้วยตารางเชื่อม (junction table) ที่เก็บคีย์นอกไปยังทั้ง students และ courses
16.ฐานข้อมูลและ SQL

คำตอบ: C · การควบคุมภาวะพร้อมกันแบบมองโลกในแง่ดี (optimistic concurrency control)

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

optimistic locking สันนิษฐานว่าความขัดแย้งเกิดน้อย: ตรวจคอลัมน์ version ตอนเขียน และล้มเหลวหากทรานแซกชันอื่นเปลี่ยนแถวไปแล้ว

คำตอบ

C · การควบคุมภาวะพร้อมกันแบบมองโลกในแง่ดี (optimistic concurrency control)
17.เครือข่ายคอมพิวเตอร์

คำตอบ: D · Time to live (TTL)

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

เราเตอร์ทุกตัวลดค่า TTL ลง เมื่อถึงศูนย์แพ็กเก็ตถูกทิ้งและมักส่งข้อความ ICMP Time Exceeded IPv6 เรียกว่า hop limit

คำตอบ

D · Time to live (TTL)
18.เครือข่ายคอมพิวเตอร์

คำตอบ: D · เราเตอร์ไม่แบ่งส่วนแพ็กเก็ต IPv6 เลย เฉพาะต้นทางทำได้ โดยใช้ path MTU discovery

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

เราเตอร์ IPv6 ทิ้งแพ็กเก็ตที่ใหญ่เกินและส่ง ICMPv6 Packet Too Big กลับ จากนั้นต้นทางส่งแพ็กเก็ตที่เล็กลงหรือใช้ส่วนหัวขยายสำหรับการแบ่งส่วน

คำตอบ

D · เราเตอร์ไม่แบ่งส่วนแพ็กเก็ต IPv6 เลย เฉพาะต้นทางทำได้ โดยใช้ path MTU discovery
19.การแบ่งซับเน็ต IPv4

คำตอบ: x = 95

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

ขนาดบล็อก

24 = 16

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

เครือข่าย: (6 − 1)·16 = 80
บรอดคาสต์: 80 + 16 − 1 = 95

คำตอบ

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

คำตอบ: x = 208

VLSM: แต่ละ LAN ได้ซับเน็ตที่เล็กที่สุดที่ 2ʰ − 2 ≥ จำนวนโฮสต์ของมัน คือพรีฟิกซ์ 32 − h การจัดสรรซับเน็ตที่ใหญ่ที่สุดก่อนทำให้ทุกบล็อกอยู่ในแนวพหุคูณของขนาดตัวเอง ที่อยู่เครือข่ายจึงได้จากการบวกขนาดบล็อก

ขนาดบล็อกของแต่ละ LAN

B: 97 โฮสต์ → 27 = 128 (/25)
D: 55 โฮสต์ → 26 = 64 (/26)
A: 11 โฮสต์ → 24 = 16 (/28)
C: 4 โฮสต์ → 23 = 8 (/29)

การจัดสรร จากใหญ่ที่สุดก่อน

B: .0 – .127
D: .128 – .191
A: .192 – .207
C: .208 – .215

คำตอบ

x = 208

LAN C: 192.168.35.208/29

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