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

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

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

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

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

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

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

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

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

¬(¬(p ∧ (r ∨ s)) ∧ (r ∨ (q ∧ p)))
N =
5.ตรรกะดิจิทัล: เกต แผนที่คาร์โนห์ และฟลิปฟล็อปปานกลาง
MUX0I0​1I1​0I2​0I3​ABS1​S0​F

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

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

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

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

จงหาฟังก์ชันโทเทียนต์ของออยเลอร์ φ(289) ซึ่งเป็นจำนวนของจำนวนเต็มตั้งแต่ 1 ถึง 289 ที่เป็นจำนวนเฉพาะสัมพัทธ์กับ 289

n = 289 = 172
φ(289) =
8.ทฤษฎีจำนวนและเลขคณิตมอดูลาร์ยาก
mc = me​ mod n555m = cd​ mod n?(n, e) = (779, 17)d

กุญแจ RSA ใช้ p = 19, q = 41 และ e = 17 จงถอดรหัสข้อความเข้ารหัส c = 555: หาข้อความ m

p = 19q = 41e = 17c = 555
m =
9.อัลกอริทึมและความซับซ้อนปานกลาง

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

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

การเรียงลำดับทอพอโลยีทำได้เฉพาะกับ

  1. Aกราฟมีทิศทางแบบไม่มีวงจร (DAG)
  2. Bกราฟไม่มีทิศทาง
  3. Cกราฟที่มีน้ำหนักติดลบ
  4. Dกราฟบริบูรณ์
11.โครงสร้างข้อมูลปานกลาง

จุดประสงค์ของโหนดยามเฝ้า (sentinel หรือ dummy) ในลิงก์ลิสต์คืออะไร

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

โหนด AVL ไม่สมดุลเพราะต้นไม้ย่อยขวาของลูกซ้ายสูงเกินไป (กรณีซ้าย–ขวา) ใช้วิธีแก้ใด

  1. Aหมุนซ้ายที่ลูกซ้าย แล้วหมุนขวาที่โหนด
  2. Bหมุนขวาที่ลูกซ้าย แล้วหมุนซ้ายที่โหนด
  3. Cหมุนซ้ายหนึ่งครั้งที่โหนด
  4. Dหมุนขวาหนึ่งครั้งที่โหนด
13.ทฤษฎีกราฟปานกลาง
ABCDEFGวงจรออยเลอร์ทางเดินออยเลอร์ ไม่มีวงจรไม่ใช่ทั้งสองอย่าง

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

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

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

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

นิพจน์ตารางร่วม (common table expression, WITH name AS (...)) ให้อะไร?

  1. Aดัชนีบนคอลัมน์
  2. Bตารางถาวรที่เก็บบนดิสก์จนกว่าจะถูกลบ
  3. Cผลลัพธ์ชั่วคราวที่มีชื่อ ใช้ได้ภายในคำสั่งเดียว
  4. Dผู้ใช้ฐานข้อมูลใหม่
16.ฐานข้อมูลและ SQLยาก

คิวรี FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.status = 'paid' ตัดลูกค้าที่ไม่มีคำสั่งซื้อออกโดยไม่คาดคิด เพราะเหตุใด?

  1. Aเงื่อนไข WHERE บน o ปฏิเสธแถวที่เติม NULL ทำให้กลายเป็น inner join
  2. BLEFT JOIN ไม่เก็บแถวที่ไม่ตรงกัน
  3. Cstatus เป็นคำสงวน
  4. Dการเชื่อมควรใช้ USING แทน ON
17.เครือข่ายคอมพิวเตอร์ปานกลาง

จุดประสงค์ของการแฮนด์เชก (handshake) สามทางของ TCP คืออะไร?

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

ในโพรโทคอลหน้าต่างเลื่อน (sliding window) Go-Back-N ต่างจาก Selective Repeat อย่างไรหลังเฟรมหนึ่งสูญหาย?

  1. Aทั้งสองส่งหน้าต่างทั้งหมดซ้ำตั้งแต่ต้น
  2. BGo-Back-N ส่งเฟรมที่หายและเฟรมหลังจากนั้นทั้งหมดซ้ำ ส่วน Selective Repeat ส่งซ้ำเฉพาะเฟรมที่หายเท่านั้น
  3. CGo-Back-N ส่งซ้ำเฉพาะเฟรมที่หาย ส่วน Selective Repeat ส่งซ้ำเฟรมนั้นและเฟรมหลังจากนั้นทั้งหมด
  4. Dทั้งสองไม่เคยส่งเฟรมที่สูญหายซ้ำ
19.การแบ่งซับเน็ต IPv4ปานกลาง
/24 → /2711111111111111111111111111100000บิตเครือข่ายบิตโฮสต์

เครือข่าย 192.168.10.0/24 ต้องแบ่งเป็นซับเน็ตขนาดเท่ากันอย่างน้อย 8 ซับเน็ต หากยืมบิตให้น้อยที่สุด แต่ละซับเน็ตมีโฮสต์ที่ใช้ได้กี่เครื่อง H

192.168.10.0/248 subnets
H =
20.การแบ่งซับเน็ต IPv4ยาก
ออคเต็ตสุดท้าย = 145112806403211608040211เครือข่ายโฮสต์

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

10.20.36.145/26
x =

3สารละลาย

1.ระบบเลข

คำตอบ: U = 188

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

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

68 = 0100 0100
ที่กลับบิตแล้ว: 1011 1011
+1 → 1011 1100

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

1011 1100₂ = 256 − 68 = 188

คำตอบ

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

คำตอบ: R = 200

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

ทีละบิต

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

1110 0100 << 1
= 1100 1000

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

1100 1000₂ = 200

คำตอบ

R = 200
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 | 0 0 1 0
p = 1, r = 0: 1 | 1 1 1 0
p = 0, r = 1: 1 | 1 0 0 0
p = 0, r = 0: 1 | 1 0 1 1

คำตอบ

¬r ∨ ¬p

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

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

คำตอบ: N = 11

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

คอลัมน์

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

แยกตาม p

p = 1: 7
p = 0: 4
N = 7 + 4 = 11

คำตอบ

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

คำตอบ: N = 2

มัลติเพล็กเซอร์: มัลติเพล็กเซอร์ 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

แถวที่ F = 1

ABC = 010, 011
N = 2

คำตอบ

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

คำตอบ: N = 4

ฟลิปฟล็อปและตัวนับ: ฟลิปฟล็อปเปลี่ยนค่าเฉพาะที่ขอบแอ็กทีฟของสัญญาณนาฬิกา 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 = 0, K = 0 → Q = 0
2: J = 0, K = 1 → Q = 0
3: J = 1, K = 0 → Q = 1
4: J = 1, K = 1 → Q = 0
5: J = 0, K = 1 → Q = 0
6: J = 0, K = 0 → Q = 0
7: J = 1, K = 0 → Q = 1
8: J = 1, K = 1 → Q = 0

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

0 → 0 → 0 → 1 → 0 → 0 → 0 → 1 → 0
N = 4

คำตอบ

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

คำตอบ: φ(289) = 272

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

ตัวประกอบเฉพาะ

289 = 172

โทเทียนต์

φ(289) = 289 − 17 = 272

คำตอบ

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

คำตอบ: m = 138

เลขยกกำลังมอดูลาร์และ 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 = 779, φ(n) = 720
d = 17−1 mod 720 = 593

ถอดรหัสด้วยการยกกำลังสองซ้ำ

593 = 512 + 64 + 16 + 1
5551 ≡ 555 (mod 779)
5552 ≡ 320 (mod 779)
5554 ≡ 351 (mod 779)
5558 ≡ 119 (mod 779)
55516 ≡ 139 (mod 779)
55532 ≡ 625 (mod 779)
55564 ≡ 346 (mod 779)
555128 ≡ 529 (mod 779)
555256 ≡ 180 (mod 779)
555512 ≡ 461 (mod 779)
555593 ≡ 555·139·346·461 ≡ 138 (mod 779)

ข้อความ

m = 138
ตรวจสอบ: 13817 mod 779 = 555

คำตอบ

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

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

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

ถ้าผลรวมน้อยเกินไปตัวชี้ซ้ายเลื่อนไปขวา ถ้ามากเกินไปตัวชี้ขวาเลื่อนไปซ้าย จึงมีไม่เกิน n ขั้น

คำตอบ

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

คำตอบ: A · กราฟมีทิศทางแบบไม่มีวงจร (DAG)

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

ลำดับทอพอโลยีมีอยู่ก็ต่อเมื่อกราฟมีทิศทางไม่มีวงจร และหาได้ใน O(V + E) ด้วย DFS หรืออัลกอริทึมของ Kahn

คำตอบ

A · กราฟมีทิศทางแบบไม่มีวงจร (DAG)
11.โครงสร้างข้อมูล

คำตอบ: D · ทำให้โค้ดง่ายขึ้นโดยตัดกรณีพิเศษที่หัวหรือท้าย

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

ด้วย sentinel ทุกโหนดจริงมีโหนดก่อนหน้า การแทรกหรือลบที่หัวจึงไม่ต้องจัดการพิเศษ

คำตอบ

D · ทำให้โค้ดง่ายขึ้นโดยตัดกรณีพิเศษที่หัวหรือท้าย
12.โครงสร้างข้อมูล

คำตอบ: A · หมุนซ้ายที่ลูกซ้าย แล้วหมุนขวาที่โหนด

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

การหมุนครั้งแรกเปลี่ยนกรณีซ้าย–ขวาเป็นซ้าย–ซ้าย ซึ่งการหมุนขวาที่โหนดไม่สมดุลแก้ได้

คำตอบ

A · หมุนซ้ายที่ลูกซ้าย แล้วหมุนขวาที่โหนด
13.ทฤษฎีกราฟ

คำตอบ: ไม่ใช่ทั้งสองอย่าง

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

ดีกรี

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

จุดยอดคี่

A, B, D, E, F, G → 6
ไม่ใช่ทั้งสองอย่าง

คำตอบ

ไม่ใช่ทั้งสองอย่าง
14.ทฤษฎีกราฟ

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

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

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

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

A (0): B: 15, C: 5
C (5): E: 19
B (15): D: 18, E: 17
E (17): F: 27
D (18): F: 19
F (19)

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

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

คำตอบ

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

คำตอบ: C · ผลลัพธ์ชั่วคราวที่มีชื่อ ใช้ได้ภายในคำสั่งเดียว

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

CTE ตั้งชื่อให้ซับคิวรี ทำให้คิวรีซับซ้อนอ่านง่ายขึ้น และอ้างอิงได้หลายครั้งในคำสั่งเดียวกัน

คำตอบ

C · ผลลัพธ์ชั่วคราวที่มีชื่อ ใช้ได้ภายในคำสั่งเดียว
16.ฐานข้อมูลและ SQL

คำตอบ: A · เงื่อนไข WHERE บน o ปฏิเสธแถวที่เติม NULL ทำให้กลายเป็น inner join

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

แถวที่ไม่มีคู่มี o.status เป็น NULL การทดสอบ WHERE จึงไม่เป็น TRUE การย้ายเงื่อนไขไปอยู่ในอนุประโยค ON เก็บลูกค้าทุกคนไว้

คำตอบ

A · เงื่อนไข WHERE บน o ปฏิเสธแถวที่เติม NULL ทำให้กลายเป็น inner join
17.เครือข่ายคอมพิวเตอร์

คำตอบ: C · เพื่อสร้างการเชื่อมต่อและซิงโครไนซ์หมายเลขลำดับ

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

การแฮนด์เชกสร้างการเชื่อมต่อและตกลงหมายเลขลำดับเริ่มต้นของทั้งสองฝ่ายก่อนส่งข้อมูล

คำตอบ

C · เพื่อสร้างการเชื่อมต่อและซิงโครไนซ์หมายเลขลำดับ
18.เครือข่ายคอมพิวเตอร์

คำตอบ: B · Go-Back-N ส่งเฟรมที่หายและเฟรมหลังจากนั้นทั้งหมดซ้ำ ส่วน Selective Repeat ส่งซ้ำเฉพาะเฟรมที่หายเท่านั้น

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

ผู้รับ Go-Back-N ทิ้งเฟรมที่มาไม่เป็นลำดับ ผู้ส่งจึงต้องส่งทุกอย่างหลังการสูญหายซ้ำ Selective Repeat เก็บเฟรมเหล่านั้นไว้ในบัฟเฟอร์และขอเฉพาะเฟรมที่ขาด

คำตอบ

B · Go-Back-N ส่งเฟรมที่หายและเฟรมหลังจากนั้นทั้งหมดซ้ำ ส่วน Selective Repeat ส่งซ้ำเฉพาะเฟรมที่หายเท่านั้น
19.การแบ่งซับเน็ต IPv4

คำตอบ: H = 30

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

บิตที่ต้องยืม

23 = 8 ≥ 8 → b = 3, /27

โฮสต์ต่อซับเน็ต

25 − 2 = 30

คำตอบ

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

คำตอบ: x = 191

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

ขนาดบล็อก

26 = 64

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

เครือข่าย: ⌊145/64⌋·64 = 128
บรอดคาสต์: 128 + 64 − 1 = 191
โฮสต์ที่ใช้ได้: 129 … 190

คำตอบ

x = 191

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