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

สรุปสูตร ขั้นตอนวิธีทำที่สำคัญของทุกหัวข้อ และโจทย์ฝึก 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 บิต?−128?64?32?16?8?4?2?1

เขียน −99 เป็นรูปแบบ two's complement 8 บิต อ่านรูปแบบนั้นเป็นเลขฐานสองแบบไม่มีเครื่องหมาย ค่าของมัน U ในเลขฐานสิบคือเท่าใด

N = −998 bit
U =
2.ระบบเลขยาก
24 บิต two's complement, N = ??เครื่องหมาย???????????????????????

จำนวนเต็มที่ติดลบมากที่สุด N ที่เก็บได้ใน two's complement 24 บิตคือเท่าใด

24 bit
N =
3.ตรรกศาสตร์ประพจน์และการพิสูจน์ปานกลาง
ซ้ำซ้อน (tautology)ขัดแย้ง (contradiction)contingency

p → (p ∧ r) เป็น tautology, contradiction หรือ contingency ให้คลิกคำตอบของคุณ

p → (p ∧ r)
  1. 1ซ้ำซ้อน (tautology)
  2. 2ขัดแย้ง (contradiction)
  3. 3contingency
4.ตรรกศาสตร์ประพจน์และการพิสูจน์ยาก
prp ∨ rp¬r11100100

การอ้างเหตุผลที่มีสมมติฐาน p ∨ r; p และบทสรุป ¬r ไม่สมเหตุสมผล ให้คลิกแถวของตารางค่าความจริงที่เป็นตัวอย่างค้าน

p ∨ rp∴ ¬r
  1. 1p = 1, r = 1
  2. 2p = 1, r = 0
  3. 3p = 0, r = 1
  4. 4p = 0, r = 0
5.ตรรกะดิจิทัล: เกต แผนที่คาร์โนห์ และฟลิปฟล็อปปานกลาง
ABC000111100101324576

จงทำ F = AB′ + A′B′C + A′B′ + BC ให้เป็นรูปผลบวกของผลคูณที่น้อยที่สุด นิพจน์ที่ทำให้ง่ายแล้วมีกี่ลิเทอรัล L

F = AB′ + A′B′C + A′B′ + BC
L =
6.ตรรกะดิจิทัล: เกต แผนที่คาร์โนห์ และฟลิปฟล็อปยาก
CLKJK12345678

ฟลิปฟล็อป JK ที่ทริกเกอร์ขอบขาขึ้นเริ่มด้วย Q = 0 และได้รับอินพุตที่แสดง ให้คลิกขอบสัญญาณนาฬิกาแรกที่ Q เปลี่ยนจาก 1 กลับเป็น 0

Q₀ = 0JK
  1. 1ขอบสัญญาณนาฬิกา 1
  2. 2ขอบสัญญาณนาฬิกา 2
  3. 3ขอบสัญญาณนาฬิกา 3
  4. 4ขอบสัญญาณนาฬิกา 4
  5. 5ขอบสัญญาณนาฬิกา 5
  6. 6ขอบสัญญาณนาฬิกา 6
  7. 7ขอบสัญญาณนาฬิกา 7
  8. 8ขอบสัญญาณนาฬิกา 8
7.ทฤษฎีจำนวนและเลขคณิตมอดูลาร์ปานกลาง

จงหาจำนวนเต็มบวกที่น้อยที่สุด x ที่ x ≡ 1 (mod 6) และ x ≡ 5 (mod 11)

x ≡ 1 (mod 6)x ≡ 5 (mod 11)
x =
8.ทฤษฎีจำนวนและเลขคณิตมอดูลาร์ยาก
964c = me​ mod n?m = cd​ mod nm(n, e) = (1333, 23)d

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

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

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

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

ทฤษฎีบท Cook–Levin พิสูจน์สิ่งใด

  1. Aทุกปัญหา NP แก้ได้ในเวลาเอกซ์โพเนนเชียล
  2. Bปัญหาการหยุดตัดสินไม่ได้
  3. Cปัญหาความสอดคล้องของสูตรบูลีน (SAT) เป็น NP-complete
  4. DP ไม่เท่ากับ NP
11.โครงสร้างข้อมูลปานกลาง

ต้นไม้ทวิภาคมีราก 1 ลูกซ้าย 2 ลูกขวา 3 โหนด 2 มีลูก 4 (ซ้าย) และ 5 (ขวา) การท่องแบบ postorder คืออะไร

  1. A5 4 3 2 1
  2. B4 5 2 3 1
  3. C1 2 4 5 3
  4. D4 2 5 1 3
12.โครงสร้างข้อมูลยาก

การค้นหาคีย์ใด ๆ ในฮีป min ทวิภาคที่มี n สมาชิกใช้เวลาเท่าใด

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

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

|V| = 15|E| = 24
k =
14.ทฤษฎีกราฟยาก
ABCDE

มีวอล์กปิดความยาว 2 ที่เริ่มและจบที่ B กี่วอล์ก วอล์กอาจซ้ำจุดยอดและเส้นเชื่อมได้ เรียกจำนวนนี้ว่า N

M = เมทริกซ์ประชิดL = 2
N =
15.ฐานข้อมูลและ SQLปานกลาง

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

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

หลัง customers LEFT JOIN orders เหตุใดจึงใช้ COUNT(o.id) แทน COUNT(*) เพื่อนับคำสั่งซื้อต่อลูกค้า?

  1. ACOUNT(*) ไม่อนุญาตหลังการเชื่อม
  2. BCOUNT(*) ละเว้นแถวที่มีค่า NULL
  3. CCOUNT(o.id) นับเฉพาะลูกค้าที่ไม่ซ้ำ
  4. DCOUNT(*) นับแถวที่เติม NULL เป็น 1 สำหรับลูกค้าที่ไม่มีคำสั่งซื้อ
17.เครือข่ายคอมพิวเตอร์ปานกลาง

NAT (การแปลงที่อยู่เครือข่าย) ใช้เป็นหลักเพื่อ:

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

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

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

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

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

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

10.20.234.157/29
x =

3สารละลาย

1.ระบบเลข

คำตอบ: U = 157

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

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

99 = 0110 0011
ที่กลับบิตแล้ว: 1001 1100
+1 → 1001 1101

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

1001 1101₂ = 256 − 99 = 157

คำตอบ

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

คำตอบ: N = −8.389 × 10⁶

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

ค่าที่ติดลบมากที่สุด

−223 = −8388608

คำตอบ

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

คำตอบ: contingency

ความสมมูลเชิงตรรกะ: สูตรสองสูตรสมมูลกัน (≡) เมื่อมีค่าเท่ากันทุกแถวของตารางค่าความจริง ซ้ำซ้อน (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)

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

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

จัดประเภท

p → (p ∧ r): 1, 0, 1, 1
1 ใน 3 จาก 4 แถว 0 ในแถวอื่น: ประพจน์ที่ไม่แน่นอน (contingency)

คำตอบ

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

คำตอบ: p = 1, r = 1

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

สมมติฐานและบทสรุปทีละแถว

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

ตัวอย่างค้าน

p = 1, r = 1

คำตอบ

p = 1, r = 1

การอ้างเหตุผลรูปแบบนี้ดูเหมือนกฎที่สมเหตุสมผล แต่แถวเดียวก็เพียงพอที่จะแสดงว่าไม่ใช่

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

คำตอบ: L = 2

พีชคณิตแบบบูล: กฎที่ทำให้นิพจน์ง่ายขึ้นได้แก่ X + X′ = 1 และ X·X′ = 0, X + X = X, การดูดกลืน X + X·Y = X, กฎการรวม X·Y + X·Y′ = X, X + X′Y = X + Y และทฤษฎีบทฉันทามติ XY + X′Z + YZ = XY + X′Z กฎของเดอมอร์แกนเปลี่ยน (X·Y)′ เป็น X′ + Y′ และ (X + Y)′ เป็น X′·Y′ แผนที่คาร์โนห์ใช้กฎเหล่านี้ในรูปภาพ: ทุกกลุ่มของสองเซลล์ที่อยู่ติดกันคือการใช้ XY + XY′ = X หนึ่งครั้ง

มินเทอมของนิพจน์

AB′ → m(4, 5)
A′B′C → m(1)
A′B′ → m(0, 1)
BC → m(3, 7)
ABC00011110011011130214151706

จัดกลุ่มและอ่านค่า

F = C + B′

นับลิเทอรัล

L = 2

คำตอบ

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

คำตอบ: ขอบสัญญาณนาฬิกา 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 หลังทุกขอบ

ฟลิปฟล็อป JK: 00 คงค่า, 01 รีเซ็ต (Q = 0), 10 เซต (Q = 1), 11 สลับค่า

1: J = 1, K = 1 → Q = 1
2: J = 1, K = 0 → Q = 1
3: J = 1, K = 1 → Q = 0
4: J = 1, K = 1 → Q = 1
5: J = 1, K = 1 → Q = 0
6: J = 1, K = 1 → Q = 1
7: J = 0, K = 1 → Q = 0
8: J = 0, K = 1 → Q = 0

การเปลี่ยนจาก 1 เป็น 0 ครั้งแรก

ขอบสัญญาณนาฬิกา 3

คำตอบ

ขอบสัญญาณนาฬิกา 3
7.ทฤษฎีจำนวนและเลขคณิตมอดูลาร์

คำตอบ: x = 49

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

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

1 + 6k ≡ 5 (mod 11) → 6k ≡ 4 (mod 11)
k ≡ 2·4 ≡ 8 (mod 11)

ผลลัพธ์

x = 1 + 6·8 = 49
x = 49
ตรวจสอบ: 49 mod 6 = 1, 49 mod 11 = 5

คำตอบ

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

คำตอบ: c = 321

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

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

23 = 16 + 4 + 2 + 1
9641 ≡ 964 (mod 1333)
9642 ≡ 195 (mod 1333)
9644 ≡ 701 (mod 1333)
9648 ≡ 857 (mod 1333)
96416 ≡ 1299 (mod 1333)
96423 ≡ 964·195·701·1299 ≡ 321 (mod 1333)

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

c = 321

คำตอบ

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

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

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

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

คำตอบ

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

คำตอบ: C · ปัญหาความสอดคล้องของสูตรบูลีน (SAT) เป็น NP-complete

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

Cook และ Levin แสดงโดยอิสระต่อกันว่าทุกปัญหาใน NP ลดรูปมาเป็น SAT ในเวลาพหุนาม SAT จึงเป็นปัญหา NP-complete ข้อแรกที่รู้จัก

คำตอบ

C · ปัญหาความสอดคล้องของสูตรบูลีน (SAT) เป็น NP-complete
11.โครงสร้างข้อมูล

คำตอบ: B · 4 5 2 3 1

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

Postorder ประมวลผล 4 และ 5 ก่อน 2 แล้ว 3 และสุดท้ายราก 1

คำตอบ

B · 4 5 2 3 1
12.โครงสร้างข้อมูล

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

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

ฮีปไม่มีกฎบอกว่าต้นไม้ย่อยใดมีคีย์ ในกรณีเลวร้ายที่สุดต้องตรวจทุกโหนด เฉพาะค่าต่ำสุดเท่านั้นที่หาได้เร็ว

คำตอบ

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

คำตอบ: k = 10

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

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

15 − 1 = 14

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

k = 24 − 14 = 10

คำตอบ

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

คำตอบ: N = 4

ดีกรี: ดีกรีของจุดยอดคือจำนวนเส้นเชื่อมที่มาบรรจบที่จุดนั้น เส้นเชื่อมแต่ละเส้นมีสองปลาย ดังนั้นผลบวกของดีกรีเท่ากับสองเท่าของจำนวนเส้นเชื่อม: Σ deg(v) = 2|E| (เล็มมาการจับมือ) ดังนั้นจำนวนจุดยอดที่มีดีกรีคี่เป็นจำนวนคู่ Kn มีเส้นเชื่อม n(n − 1)/2 เส้น กราฟปรกติดีกรี k ที่มี n จุดยอดมี nk/2 เส้น และต้นไม้ที่มี n จุดยอดมี n − 1 เส้นเชื่อม

เมทริกซ์ประชิด

A: 0 1 1 0 0
B: 1 0 1 1 1
C: 1 1 0 0 1
D: 0 1 0 0 1
E: 0 1 1 1 0

เพื่อนบ้านร่วม

(M²)BB = 1·1 + 0·0 + 1·1 + 1·1 + 1·1 = 4

คำตอบ

N = 4
15.ฐานข้อมูลและ SQL

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

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

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

คำตอบ

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

คำตอบ: D · COUNT(*) นับแถวที่เติม NULL เป็น 1 สำหรับลูกค้าที่ไม่มีคำสั่งซื้อ

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

left join ให้หนึ่งแถวที่คอลัมน์คำสั่งซื้อเป็น NULL สำหรับลูกค้ากลุ่มนี้ COUNT(o.id) ข้าม NULL และรายงาน 0 ได้ถูกต้อง

คำตอบ

D · COUNT(*) นับแถวที่เติม NULL เป็น 1 สำหรับลูกค้าที่ไม่มีคำสั่งซื้อ
17.เครือข่ายคอมพิวเตอร์

คำตอบ: C · ให้อุปกรณ์จำนวนมากที่ใช้ที่อยู่ส่วนตัวใช้ที่อยู่ IP สาธารณะร่วมกันเพียงหนึ่งที่อยู่

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

NAT เขียนที่อยู่ (และพอร์ต) ใหม่เพื่อให้เครือข่ายส่วนตัวเข้าถึงอินเทอร์เน็ตผ่านที่อยู่สาธารณะจำนวนน้อยกว่า

คำตอบ

C · ให้อุปกรณ์จำนวนมากที่ใช้ที่อยู่ส่วนตัวใช้ที่อยู่ IP สาธารณะร่วมกันเพียงหนึ่งที่อยู่
18.เครือข่ายคอมพิวเตอร์

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

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

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

คำตอบ

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

คำตอบ: p = 24

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

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

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

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

p = 32 − 8 = 24

คำตอบ

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

คำตอบ: x = 152

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

ขนาดบล็อก

23 = 8

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

เครือข่าย: ⌊157/8⌋·8 = 152
บรอดคาสต์: 152 + 8 − 1 = 159
โฮสต์ที่ใช้ได้: 153 … 158

คำตอบ

x = 152

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