Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม
การเขียนโปรแกรม
  1. เชี่ยวชาญ Linux: 50+ คำสั่งจำเป็นสำหรับการจัดการระบบอย่างมีประสิทธิภาพ

    บทนำ ปลดล็อกศักยภาพเต็มที่ของระบบ Linux ด้วยคู่มือครบครันสำหรับคำสั่ง Linux ที่จำเป็น ไม่ว่าคุณจะเป็นผู้ดูแลระบบมืออาชีพหรือเพิ่งเริ่มต้น การเชี่ยวชาญคำสั่งเหล่านี้สำคัญมากสำหรับการจัดการเซิร์ฟเวอร์เขียนสคริปต์ และ troubleshooting ในบทช่วยสอนนี้ คุณจะได้เรียนรู้คำสั่งที่ใช้บ่อยและทรงพลังที่สุดเกิน 5

  2. ปรับใช้ Fine-Tuned LLMs แบบ Serverless: ลดต้นทุนด้วย Pay-Per-Token Inference

    บทนำ หนึ่งในขั้นตอนการประหยัดต้นทุนที่ใหญ่ที่สุดที่ทีม AI workflow สามารถทำได้ในโปรเจกต์ใหม่ คือการใช้ประโยชน์จาก serverless inference เมื่อเหมาะสม แบบดั้งเดิม AI models ต้องการ dedicated GPU ที่รัน 24/7 จ่ายรายชั่วโมง ด้วย serverless inference endpoints ทีมมีตัวเลือกใช้ open source models หลายตัวแบ

  3. เลือกโครงสร้างพื้นฐาน AI Inference: Serverless หรือ Dedicated เมื่อธุรกิจเติบโต

    นักพัฒนาส่วนใหญ่เผชิญกับความท้าทายในการเลือกโครงสร้างพื้นฐาน AI ที่เหมาะสม โดยคำถามหลักมักหมุนรอบการตัดสินใจระหว่าง Serverless สำหรับความยืดหยุ่น และ Dedicated สำหรับการควบคุม ความสะดวกสบายเทียบกับประสิทธิภาพ ในทางปฏิบัติ โครงสร้างพื้นฐานสำหรับ Inference ไม่ใช่สิ่งที่คุณ เลือกถูกต้อง เพียงครั้งเดียว

  4. หลุมพรางทั่วไปที่ทำให้ระบบ RAG ล้มเหลวในสภาพแวดล้อมการผลิต

    การสร้างข้อมูลแบบเพิ่มเติมด้วยการดึงข้อมูล (Retrieval‑augmented generation - RAG) ควรเสริมโมเดลภาษาขนาดใหญ่ด้วยความรู้ภายนอก ระบบ RAG อาจทำงานได้อย่างสวยงามในสาธิต: ชุดข้อมูลเล็กที่ได้รับการดูแล คำค้นหาที่สะอาด และงบประมาณเวลาแฝงที่ไม่มีข้อจำกัด นำไปสู่คำตอบที่มีความรู้และมีพื้นฐาน ซึ่งผู้ใช้เชื่อว่

  5. Round Robin Scheduling: Time Slicing ในระบบปฏิบัติการ

    ตัวอย่าง Process และ Burst Time Process Burst Time A 4 B 1 C 8 D 1 Time Slice = 10 units Gantt Chart / Timeline A B C D A C C C 0 2 3 5 6 8 10 12 14 การวิเคราะห์ Process A จะเสร็จสิ้นหลังจาก 8 Cycles (รัน 2 units ต่อครั้ง รวม 4 ครั้ง = 8 units แต่ Burst

  6. Binary Search: การค้นหาแบ่งครึ่ง

    คืออะไร? Binary Search ใช้กับ Sorted List** แบ่งรายการเป็น 2 ส่วนย่อย ตรงกลาง = Key → คืนตำแหน่ง มิฉะนั้น ไปซ้ายหรือขวา ทำซ้ำจนเจอหรือเกิน Range Complexity Time: Best O(1), Average/Worst O(log₂ n) Space: O(1) Input/Output Input: Sorted: 12 25 48 52 67 79 88 93 Key: 79 Output: Item found at lo

  7. Exponential Search: การค้นหาแบบเลขยกกำลัง

    คืออะไร? Exponential Search (Doubling/Galloping Search) หา Range (ช่วง) ที่ Key อาจอยู่ โดย L และ U เป็นกำลังของ 2 สำหรับส่วนสุดท้าย U = ตำแหน่งสุดท้าย แล้วค่อย Binary Search ใน Range นั้น Complexity Time: Best O(1), Average/Worst O(log₂ i) โดย i = ตำแหน่งของ Key Space: O(1) Input/Output Input:

  8. Interpolation Search: การค้นหาด้วยการประมาณตำแหน่ง

    คืออะไร? Interpolation Search ต่างจาก Binary Search ที่แบ่งครึ่งเท่าๆ กัน Interpolation ใช้ สูตรประมาณตำแหน่ง (Interpolation Formula) คาดเดาตำแหน่งของ Key หากข้อมูลกระจาย Uniform จะหาเจอเร็วมาก Complexity Time: Average O(log₂(log₂ n)), Worst O(n) (ข้อมูลกระจาย Exponential) Space: O(1) Input/Out

  9. Jump Search: การค้นหาแบบกระโดด

    คืออะไร? Jump Search ใช้กับ Ordered Lists สร้าง Block ขนาด √n ค้นหาใน Block ถ้าไม่เจอ → ขยับ Block ทั้งก้อน เจอ Block ใช่ → Linear Search ใน Block ประสิทธิภาพอยู่ระหว่าง Linear และ Binary Search Complexity Time: O(√n) Space: O(1) Input/Output Input: Sorted: 10 13 15 26 28 50 56 88 94 127 159 3

  10. Linear Search: การค้นหาแบบลำดับ

    คืออะไร? Linear Search (Sequential Search) เทคนิคง่ายที่สุด ค้นหาทีละตัว ใช้ได้กับ Unsorted Data Time Complexity เป็น O(n) Complexity Time: O(n) Space: O(1) Input/Output Input: 20 4 89 75 10 23 45 69 Key: 10 Output: Item found at location: 4 อัลกอริทึม linearSearch(array, size, key): for i

  11. Ternary Search: การค้นหาแบ่ง 3 ส่วน

    คืออะไร? คล้าย Binary Search แต่แบ่งรายการเป็น 3 ส่วน ด้วย 2 Mid Values ลดเวลาค้นหาลงเพราะแบ่งย่อยมากกว่า Complexity Time: O(log₃ n) Space: O(1) Input/Output Input: Sorted: 12 25 48 52 67 79 88 93 Key: 52 Output: Item found at location: 3 อัลกอริทึม ternarySearch(array, start, end, key): i

  12. Bubble Sort: อัลกอริทึมจัดเรียงแบบเปรียบเทียบ

    คืออะไร? Bubble Sort เป็น Comparison-based Sorting Algorithm เปรียบเทียบและสลับ adjacent elements เพื่อจัดลำดับ เรียบง่าย แต่ ไม่เหมาะกับข้อมูลเยอะ ใช้เวลานาน Complexity Time: Best O(n), Average O(n²), Worst O(n²) Space: O(1) Input/Output Input: 56 98 78 12 30 51 Output: 12 30 51 56 78 98 อัล

  13. Non-persistent CSMA Protocol

    คืออะไร? Non-persistent CSMA เป็นรุ่น ไม่ก้าวร้าว (Non-aggressive) ของ CSMA ทำงานที่ชั้น MAC Sensing Busy → รอ Random Time โดยไม่สensing ระหว่างรอ → ทำอัลกอริทึมใหม่ อัลกอริทึม เฟรมพร้อม → ตรวจสอบ Channel Idle → ส่งทันที Busy → รอ Random Time (ไม่ตรวจสอบ Channel ระหว่างรอ) หมดเวลา → ตรวจสอบ Chann

  14. 1-Persistent CSMA Protocol

    คืออะไร? 1-persistent CSMA เป็นรุ่น ก้าวร้าว (Aggressive) ของ CSMA ทำงานที่ชั้น MAC สensing Busy → รอจบการส่ง → ส่งทันทีด้วยความน่าจะเป็น 1 (ดังนั้นจึงชื่อ 1-persistent) ใช้ใน CSMA/CD Systems (Ethernet) อัลกอริทึม เฟรมพร้อม → ตรวจสอบ Channel Busy → รอและตรวจสอบต่อจนว่าง Idle → ส่งทันที (Probabili

  15. P-persistent CSMA Protocol

    คืออะไร? P-persistent CSMA รวมข้อดีของ 1-persistent และ non-persistent CSMA โหนดส่ง/รับผ่าน Shared Medium (สายเคเบิล/ไฟเบอร์/ Wireless Spectrum) เมื่อสถานีมีเฟรมส่ง และสensing ช่องทาง Busy → รอจนจบการส่ง → ส่งด้วยความน่าจะเป็น p (ดังนั้นจึงชื่อ p-persistent) อัลกอริทึม เฟรมพร้อม → ตรวจสอบ Channe

  16. CSMA/CD: Carrier Sense Multiple Access with Collision Detection

    คืออะไร? CSMA/CD เป็นโปรโตคอลเครือข่าย ทำงานที่ชั้น MAC ฟัง Channel ว่าว่างหรือไม่ ว่างแล้วค่อยส่ง ตรวจจับ Collision โดยการฟังการส่งจากสถานีอื่น เจอ Collision → หยุดส่ง ส่ง Jam Signal รอ Random Time → ส่งใหม่ อัลกอริทึมหลัก เฟรมพร้อม → ตรวจสอบ Channel Busy → รอจนว่าง Idle → เริ่มส่ง และ Monitor C

  17. CSMA/CA: Carrier Sense Multiple Access with Collision Avoidance

    คืออะไร? CSMA/CA เป็นโปรโตคอลเครือข่ายสำหรับการส่งสัญญาณ ทำงานที่ชั้น Medium Access Control (MAC) ต่างจาก CSMA/CD ที่จัดการ Collision หลังเกิดขึ้น CSMA/CA ป้องกัน Collision ก่อนเกิด อัลกอริทึม เฟรมพร้อม → ตรวจสอบ Channel ว่างหรือไม่ Channel Busy → รอจนว่าง Channel Idle → รอ Inter-frame Gap (IFG)

  18. Abstract Data Type (ADT) ในโครงสร้างข้อมูล

    Data Type vs Abstract Data Type Data Type: ประเภทข้อมูลพื้นฐาน (int, float, char) ระบุชนิด ขนาดหน่วยความจำ ADT (Abstract Data Type): ชนิดข้อมูลพิเศษ กำหนดพฤติกรรมโดย ชุดค่า (Values) และ ชุดการดำเนินการ (Operations) Abstract = ใช้งานได้ แต่วิธีทำงานภายในถูกซ่อน (Encapsulation) สร้างจาก Primitive Ty

  19. Stack Primitive Operations ในโครงสร้างข้อมูล

    Stack: LIFO (Last In First Out) ใช้ใน Expression Evaluation, Function Call/Recursion ADT ซ่อนรายละเอียดภายใน Stack ADT Operations isFull() – ตรวจสอบ Stack เต็ม isEmpty() – ตรวจสอบ Stack ว่าง push(x) – ใส่ x เข้า Stack pop() – ลบจาก Top peek() – ดูค่า Top size() – จำนวนองค์ประกอบ ตัวอย่าง C++ (S

  20. Tail Recursion ในโครงสร้างข้อมูล

    Tail Recursion คืออะไร? Tail Recursion คือการเรียกฟังก์ชัน Recursive เป็น คำสั่งสุดท้าย ของฟังก์ชัน ไม่มีงานเหลือหลังจาก Recursive Call กลับมา ตัวอย่าง: Print N ถึง 0 void printN(int n) { if (n < 0) return; cout << n << ; printN(n - 1); // Tail Recursive Call } Output: 10

Total 1490 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:2/75  20-คอมพิวเตอร์/Page Goto:1 2 3 4 5 6 7 8