เลือกหัวข้อจากแถบเมนูด้านซ้าย (กรณีหน้าจอเล็กเมนูจะหดกลายเป็นสัญลักษณ์สามขีดอยู่ในแถบเมนูด้านบน) หรือใส่คำค้นหาที่ช่องด้านล่างนี้ เพื่อค้นหาหัวข้อบทความหรือ Tutorial เกี่ยวกับเรื่อง computational ที่ต้องการ
9 เหตุผลที่ลูกของคุณควรเรียนเขียนโค้ด (และข้อควรระวัง 1 ข้อ)...
Read More →เป้าหมายของการเรียนเขียนโปรแกรมสำหรับแต่ละคนอาจจะแตกต่างกันออกไป แต่วัตถุประสงค์หลักของการเรียนเขียนโปรแกรมคือการทำให้เราสามารถเขียนโปรแกรมเพื่อแก้ปัญหาต่างๆได้ เรียนเขียนโปรแกรมได้ทักษะในการแก้ปัญหา แล้วอะไรละคือปัญหา? ......
Read More →วัตถุประสงค์ของการเรียนเขียนโปรแกรมคอมพิวเตอร์ของผู้ปกครองที่อยากให้ลูกเรียนมีแตกต่างกันไปเช่น เห็นลูกเล่นแต่เกมจับมาเรียนเขียนโปรแกรมดีกว่า อยากให้สอบแข่งขัน Computer Olympics หรือ สอบ สอวน. ได้ยินในสื่อต่างๆเช่นใน Social Media ใน Facebook , ใน Youtube หรือใน โทรทัศน์ว่า Computer เป็นสิ่งที่จำเป็นต่อการทำงานในอนาคต มีความคิดว่าในอนาคตงานต่างๆจะทำโดย AI มากยิ่งขึ้น ดังนั้น......
Read More →บทนำ Deep Learning ด้วย TensorFlow Libraries เช่น TensorFlow และ Theano ไม่ใช่ Libraries สำหรับ Deep Learning ทั่วๆไป พวกมันเป็น librariesที่สร้างขึ้นมาอย่างเฉพาะสำหรับ Deep Learning เลย จริงๆแล้วพวกมัน เป็น libraries เพื่อการคำนวณทางคณิตศาสตร์ เหมือนแบบที่ Numpy เป็น อย่างไรก็ตามความแตกต่างก็คือ package อย่าง TensorFlow ทำให้เราสามารถดำเนินการทางคณิตศาสตร์แบบ machine learning โดยเฉพาะได้เ...
Read More →การออกแบบอัลกอริทึมเป็นส่วนสำคัญของโลกดิจิทัลที่มีบทบาทสำคัญในการสร้างซอฟต์แวร์และระบบสารสนเทศต่างๆ ที่ใช้อย่างแพร่หลายในปัจจุบัน การออกแบบอัลกอริทึมที่มีคุณภาพสูงเป็นที่สำคัญอย่างยิ่งเนื่องจากมีผลต่อประสิทธิภาพและประสิทธิภาพของระบบที่ต้องการการประมวลผลด้วยอัลกอริทึม ในบทความนี้เราจะพาคุณไปสู่โลกการออกแบบอัลกอริทึมผ่านแว่นตาของคณิตศาสตร์ไม่ต่อเนื่อง โดยให้ความสำคัญกับคณิตศาสตร์ไม่ต่อเนื่องที่มีบทบาทสำคัญในการออกแบบอัลกอริทึมอย่างคุณภาพและมีประสิทธิภาพ...
Read More →เรียนเขียนโปรแกรม หรือ programming เป็นทักษะที่มีความสำคัญอย่างมากในยุคปัจจุบัน ไม่ว่าคุณจะเป็นนักศึกษาที่ต้องการเรียนรู้เกี่ยวกับการเขียนโปรแกรมเพื่อเพิ่มทักษะการทำงานหรือคุณก็อาจเป็นคนที่กำลังเริ่มต้นในวงการ IT และต้องการเรียนรู้เกี่ยวกับ programming เพื่อพัฒนาตนเอง การเรียนเขียนโปรแกรมอาจดูเป็นเรื่องยากและซับซ้อนตามที่คิด แต่ที่จริงแล้วมันไม่ยากอย่างที่คิด มาดูกันว่าทำไมเรียนเขียนโปรแกรมไม่ยากอย่างที่คิดและพร้อมเริ่มกันตอนนี้!...
Read More →Brute force หรือการลองทุกโอกาสที่เป็นไปได้เป็นหนึ่งในวิธีพื้นฐานที่สุดในการแก้ปัญหาการเขียร์โค้ด. วิธีนี้มักเป็นทางเลือกแรกๆ ก่อนที่เราจะเข้าสู่วิธีการที่ซับซ้อนมากขึ้น. การสร้างเซตย่อยทั้งหมด (Generating All Subsets) เป็นหนึ่งในปัญหาที่สามารถใช้การ Brute force ในการแก้ได้....
Read More →การเขียนโปรแกรมเป็นทักษะที่น่าดึงดูดในโลกยุคปัจจุบัน ความสามารถในการแก้ไขปัญหาผ่านการเขียนโค้ดเปิดโอกาสมากมายให้กับผู้ที่มีทักษะนี้ 8 Queens Problem หรือปัญหาแปดราชินี เป็นหนึ่งในโจทย์ที่ท้าทาย และผู้ที่สามารถจัดการกับโจทย์นี้ได้จะเห็นถึงการใช้แนวคิดทางการโปรแกรมและการใช้แอลกอริธึมอย่างชาญฉลาด วันนี้ เราจะมาทำความเข้าใจปัญหานี้ พร้อมทั้งอธิบายวิธีแก้ พิจารณายูสเคสในโลกจริง รวมถึงวิจารณ์ความซับซ้อนและข้อดีข้อเสียของอัลกอริทึมนี้กันค่ะ...
Read More →ในโลกของการเขียนโปรแกรม ปัญหาที่ท้าทายและจำเป็นต้องใช้ความสามารถทางด้านอัลกอริธึมอย่างมากคือ การเดินทางของพระบุ้งหมากรุก หรือที่เรียกว่า Knights Tour Problem ในแบบที่เป็นโจทย์คลาสสิกของโลกการเขียนโปรแกรมและแก้ปัญหาทางคณิตศาสตร์...
Read More →Permutation หมายถึงการจัดเรียงสมาชิกทุกตัวของเซ็ตหรือรายการวัตถุในลำดับต่างๆ โดยไม่มีการทับซ้อนกัน เมื่อพิจารณาจากมุมมองของวิทยาการคอมพิวเตอร์และอัลกอริทึม, Permutation คือเทคนิคพื้นฐานที่ใช้ในการแก้ปัญหาจำนวนมาก เช่น ปัญหาการให้บริการลูกค้า (scheduling problems), ปัญหาการเดินทางของพ่อค้า (Travelling Salesman Problem), และอื่นๆ...
Read More →ในมุมมองทางวิชาการ, TSP มักถูกนำไปใช้เป็นตัวอย่างเพื่อแสดงภาพปัญหาการเลือกและการตั้งคำถามในด้านอัลกอริทึมและความซับซ้อนทางการคำนวณ (Computational Complexity). ยกตัวอย่างเช่น เมื่อเราต้องการดูว่าอัลกอริทึมใดสามารถหาคำตอบได้ดีที่สุดหรือคำตอบที่เป็นที่ยอมรับได้ในเวลาที่เหมาะสม....
Read More →โจทย์ปัญหา 8 Queens เป็นหนึ่งในโจทย์คลาสสิกทางด้านคอมพิวเตอร์ ซึ่งตั้งขึ้นเพื่อวัดความสามารถของอัลกอริทึมในการค้นหาคำตอบที่ถูกต้องโดยปัญหามีเงื่อนไขว่า สามารถวางราชินี (Queens) บนกระดานหมากรุกขนาด 8x8 ได้ทั้งหมด 8 ตัวโดยที่พวกเธอไม่สามารถจัดการกันเองได้ตามกฎหมากรุก นั่นคือ ราชินีแต่ละตัวไม่สามารถยืนอยู่บนเส้นทางการเดินของราชินีตัวอื่นๆ ไม่ว่าจะเป็นแนวตั้ง แนวนอนหรือแนวทแยงมุม...
Read More →การเขียนโปรแกรมไม่เพียงแต่เกี่ยวกับการสร้างแอพพลิเคชันให้สวยงามและใช้งานง่ายเท่านั้น แต่ยังเกี่ยวข้องกับการแก้ปัญหาที่ซับซ้อนและการประมวลผลข้อมูลอย่างมีประสิทธิภาพ หนึ่งในอัลกอริธึมที่น่าสนใจอย่างมากคือ Dijkstra Algorithm ที่ใช้ภาษา Perl เพื่อสาธิตและวิเคราะห์ความซับซ้อน ตลอดจนการใช้งานในโลกจริง...
Read More →8 Queens Problem เป็นหนึ่งในปริศนาคลาสสิกทางด้านคอมพิวเตอร์ไซน์ติฟิกที่เป็นที่รู้จักกันดี ปัญหานี้ถูกวางโดย Max Bezzel ในปี ค.ศ. 1848 และต่อมาได้มีการศึกษาและพัฒนาอัลกอริธึมในการแก้ไขโดยนักคณิตศาสตร์และนักโปรแกรมหลายคน การท้าทายในปริศนานี้คือการวางราชินีหมากรุก 8 ตัวลงบนกระดานหมากรุกขนาด 8x8 โดยที่ราชินีแต่ละตัวไม่สามารถโจมตีราชินีตัวอื่นได้ โดยปกติราชินีสามารถเคลื่อนไปในทิศทางใดทิศทางหนึ่งได้ไม่จำกัดช่อง แนวตั้ง แนวนอน และแนวทแยง...
Read More →การแก้ปัญหาด้านคอมพิวเตอร์มักต้องผ่านอุปสรรค์ที่ท้าทาย หนึ่งในปัญหาคลาสสิกที่เรียกว่า 8 Queens Problem นั้นเป็นเคสที่ดีในการเรียนรู้วิธีการจัดการกับข้อจำกัดต่างๆ ในขณะที่พยายามหาหนทางแก้ไขปัญหา. บทความนี้จะพาคุณไปทำความเข้าใจ Algorithm ที่ใช้ในการแก้ไขปัญหา 8 Queens พร้อมแสดงตัวอย่างโค้ดด้วยภาษา Lua และยังจะวิเคราะห์ความซับซ้อน ข้อดี-ข้อเสีย รวมทั้งอธิบายถึงการประยุกต์ใช้ในโลกจริง....
Read More →ในสาขาคอมพิวเตอร์ระบบเครือข่ายหรือโครงสร้างข้อมูลที่มีลักษณะเป็นกราฟ(Graphs) ประเด็นหนึ่งที่น่าสนใจคือเรื่องของการหาจุดที่มีความสำคัญหรือ จุดคั่น(Articulation Points) ซึ่งจุดเหล่านี้คือจุดที่ถ้าหากถูกลบหรือเสียหายไปแล้ว อาจทำให้โครงข่ายหรือกราฟนั้นแยกส่วนออกจากกันและไม่ต่อเนื่อง...
Read More →ในโลกแห่งการเขียนโค้ด มีปัญหามากมายที่สามารถแก้ไขได้ด้วยวิธีการค้นหาแบบ Brute Force ซึ่งเป็นวิธีการที่ตรงไปตรงมาและเข้าใจง่าย หนึ่งในปัญหาที่ Brute Force เข้ามามีบทบาทคือการสร้างเซ็ตย่อยทั้งหมด (Generating all subsets) ซึ่งมีประโยชน์อย่างมากในการแก้ไขปัญหาด้านการคำนวณคอมบิเนเตอร์หรือการทำ data analysis. ในบทความนี้ เราจะพูดถึง Algorithm สำหรับการสร้างเซ็ตย่อยโดยใช้ภาษา Rust เพื่อช่วยเปิดมุมมองใหม่ๆ ในการแก้ไขปัญหาเหล่านี้ในภาษาที่มีประสิทธิภาพสูง....
Read More →เมธอดนิวตัน หรือเรียกอีกชื่อหนึ่งว่า การประมาณค่าด้วยวิธีนิวตัน-ราฟสัน (Newton-Raphson Method) เป็นหนึ่งในอัลกอริธึมทางคณิตศาสตร์ที่ใช้สมการพหุนามหรือฟังก์ชันต่อเนื่องใดๆ เพื่อหาค่าราก (root) หรือค่าที่ทำให้ฟังก์ชันมีค่าเป็นศูนย์ โดยที่วิธีนี้ทำงานอย่างไร? มันอาศัยการเริ่มจากการทายค่าเริ่มต้น (initial guess) บางค่าและใช้สูตรต่อไปนี้เพื่อปรับปรุงค่านั้นให้เข้าใกล้ค่าจริงมากขึ้น:...
Read More →พบกันอีกครั้งในโลกแห่งตัวอักษรและศิลปะการเขียนโปรแกรมที่ EPT เราไม่เพียงแต่เรียนรู้เพื่อพัฒนาซอฟต์แวร์ แต่ยังเรียนรู้เพื่อค้นหาความจริง ลึกซึ้งไปในกระบวนการคิดเชิงแก้ไขปัญหาแบบที่คอมพิวเตอร์ทำได้ดีที่สุด วันนี้เราจะมาแชร์ความรู้กันเกี่ยวกับ B* Algorithm พร้อมตัวอย่างโค้ดในภาษา C++ และวิเคราะห์ในแง่มุมต่างๆ ถ้าพร้อมแล้ว มาเริ่มกันเลย!...
Read More →2. การใช้งานและปัญหาที่ D* Algorithm แก้ไข...
Read More →ในภายการใช้งานจริง, Voronoi Diagram มีประโยชน์อย่างมากในการวิเคราะห์เชิงพื้นที่ เช่น คำนวณพื้นที่บริการที่ใกล้ที่สุดสำหรับลูกค้าในการวางตำแหน่งสาขาของบริษัท, การศึกษาการกระจายพันธุ์ของสัตว์ ฯลฯ...
Read More →Newtons Method, หรือที่รู้จักในชื่อ Newton-Raphson Method, เป็นอัลกอริทึมเชิงตัวเลขที่สำคัญในการคำนวณหาค่ารากของฟังก์ชัน (รากของสมการ). อัลกอริทึมนี้แสนจะมีเสน่ห์ด้วยความเร็วและความแม่นยำ ซึ่งทำให้ได้รับความนิยมในหลากหลายวงการวิทยาการ ตั้งแต่วิศวกรรมไปจนถึงเศรษฐศาสตร์....
Read More →ในโลกที่ข้อมูลเต็มไปหมด การทำความเข้าใจและคาดการณ์สถานการณ์ที่ซับซ้อนด้วยความแม่นยำสูงเป็นความท้าทายอันใหญ่หลวงของนักวิเคราะห์และนักวิทยาศาสตร์ข้อมูล ดังนั้น พาติเคิลฟิลเตอร์ (Particle Filter) จึงถือเป็นอัลกอริทึมที่มาพร้อมกับความหวังในการประมวลผลข้อมูลที่ไม่แน่นอนหรือมีสัญญาณรบกวนสูงได้ดียิ่งขึ้น ในบทความนี้ เราจะทำความเข้าใจว่าอัลกอริทึมมหัศจรรย์นี้คืออะไร มันใช้เพื่อแก้ปัญหาใด ยกตัวอย่างการใช้งานในโลกจริง พร้อมทั้งวิเคราะห์ข้อดีและข้อเสียผ่านตัวอย่างโค้ดที่เขียนด้วยภาษา Java...
Read More →บทความนี้จะนำเสนอว่า Voronoi Diagram คืออะไร, อัลกอริทึมที่ใช้, ปัญหาที่สามารถแก้ได้ด้วย Voronoi Diagram, การวิเคราะห์ความซับซ้อน (complexity), ข้อดีข้อเสีย, ตัวอย่าง code ในภาษา Java และการนำไปใช้งานในโลกจริง (usecase)....
Read More →ในโลกแห่งการวิเคราะห์ปัญหาการคำนวณที่ซับซ้อนผ่านอัลกอริทึม, Minimum Cost Flow Algorithm (อัลกอริทึมการหากระแสที่มีต้นทุนต่ำสุด) คือเครื่องมือที่สำคัญที่ช่วยให้เราสามารถหาวิธีการลำเลียง สินค้า จากจุดหนึ่งไปยังอีกจุดหนึ่งโดยใช้ต้นทุนต่ำที่สุด โดยที่ สินค้า อาจหมายถึงข้อมูล, พลังงาน, หรือแม้กระทั่งผลผลิตจากโรงงาน. อัลกอริทึมนี้ถือเป็นส่วนสำคัญของฟิลด์ที่เรียกว่า Optimisation หรือการปรับปรุงให้เหมาะสมที่สุด ที่มีการใช้กันอย่างแพร่หลายในอุตสาหกรรมต่างๆ ไม่ว่าจะเป็นการขนส่ง, การจัดสรรทรัพยากร, หรือแม้...
Read More →การเขียนโปรแกรมเป็นสิ่งที่เปิดโลกแห่งการแก้ปัญหาได้อย่างไม่จำกัด โดยเฉพาะด้านของอัลกอริทึมที่เป็นหัวใจของหลายๆ โซลูชันในภาควิชาการและวิชาชีพ วันนี้เราจะมาดำดิ่งไปกับอัลกอริทึมชื่อดังอีกตัวหนึ่งที่เรียกว่า Ford-Fulkerson Algorithm ซึ่งถูกนำมาใช้เพื่อการหาค่าการไหลสูงสุดในเครือข่าย (maximum flow) ในปัญหาที่เกี่ยวข้องกับเนื้อข่าย (network)...
Read More →ในโลกของการคำนวณและการเขียนโปรแกรม มีอัลกอริธึมที่หลากหลายซึ่งถูกพัฒนาขึ้นเพื่อแก้ปัญหาคำนวณที่ซับซ้อน หนึ่งในอัลกอริธึมที่น่าสนใจคือ Las Vegas Algorithm. บทความนี้จะพาท่านไปสำรวจตัวอัลกอริธึมนี้ในมุมมองทางการวิเคราะห์และในการประยุกต์ใช้งานจริง โดยยกตัวอย่างการใช้งานผ่านภาษา C# และเชิญชวนให้คุณผู้อ่านสนใจศึกษาการเขียนโปรแกรมที่ EPT ที่จะช่วยให้คุณให้คุณเข้าใจโลกของอัลกอริธึมอย่างลึกซึ้งยิ่งขึ้นอีกด้วย...
Read More →การสื่อสารข้อมูลทางการศึกษาในโลกไอทีเป็นเรื่องที่ทั้งน่าตื่นเต้นและท้าทาย นักพัฒนาและนักวิเคราะห์มักหาวิธีใหม่ๆในการแก้ปัญหาที่ซับซ้อน หนึ่งในเครื่องมือที่อาจไม่ค่อยได้รับความสนใจมากนักคือ แผนภาพวอร์โรนอย (Voronoi Diagram) ซึ่งมีศักยภาพในการสร้างโซลูชันในหลายๆด้าน และนี่คือจักรวาลที่สวยงามของการประมวลผลพื้นที่ด้วยวอร์โรนอยผ่านมูลนิธิภาษา C# ที่เราที่ EPT เป็นต้นแบบในการสร้างนวัตกรรมนี้ให้เติบโต....
Read More →การคำนวณหาค่ารากของสมการ (root finding) คือหนึ่งในงานพื้นฐานที่มีความหมายสำคัญในวิทยาศาสตร์และวิศวกรรม หนึ่งในเทคนิคที่สำคัญและได้รับความนิยมในการคำนวณหาค่ารากคือ Newtons Method หรือที่เรียกอีกชื่อหนึ่งว่า Newton-Raphson Method. วันนี้เราจะมาพูดถึงอัลกอริธึมนี้ และวิธีการใช้งานโดยใช้ภาษา VB.NET เพื่อเสริมความเข้าใจในเชิงวิชาการและปฏิบัติการ และท้ายที่สุดเราจะได้ตรวจสอบความซับซ้อน (Complexity), ข้อดี และข้อเสียของ Newtons Method ด้วยกัน....
Read More →Voronoi Diagram เป็นโครงสร้างทางคณิตศาสตร์ที่มีประโยชน์ในหลายสาขาวิชา เช่น คอมพิวเตอร์กราฟิกส์, เมทริกซ์ภูมิประเทศ, วิทยาศาสตร์ชีวภาพ และอื่นๆ มันถูกสร้างขึ้นจากจุดที่กำหนดไว้บนพื้นผิวหรือในอวกาศ (sites หรือ seed points) ซึ่ง Voronoi Diagram จะแบ่งพื้นที่นั้นออกเป็นส่วนๆ ให้กับจุดที่ใกล้ที่สุด...
Read More →การหาคำตอบของระบบสมการเชิงเส้น (Linear Equations) คือหนึ่งในปัญหาทางคณิตศาสตร์ที่เก่าแก่และสำคัญ เทคนิคที่ใช้แก้ปัญหานี้มากที่สุดหนึ่งในนั้นคือ Gaussian Elimination มันไม่เพียงแค่ใช้ในคณิตศาสตร์เท่านั้น แต่ยังมีความสำคัญในวิทยาศาสตร์ข้อมูล, วิศวกรรม, และหลายๆ ด้านในการคำนวณทางเทคนิค....
Read More →เรามาดูตัวอย่างของการใช้ randomized algorithm ในภาษา Python กัน:...
Read More →ในโลกของการเขียนโปรแกรมทางด้านคณิตศาสตร์ เรามักจะเจอกับการแก้ปัญหาหาค่ารากของสมการที่มีลักษณะนานาประการ หนึ่งในเทคนิคที่ได้รับความนิยมในการหาค่ารากของสมการคือ Mullers method. วันนี้เราจะพาไปสำรวจ Mullers method ว่ามันคืออะไร ใช้งานอย่างไรในภาษา Python พร้อมทั้งยกตัวอย่างการประยุกต์ใช้ในโลกจริง วิเคราะห์ความซับซ้อน รวมถึงข้อดีข้อเสียของมัน...
Read More →เคยสงสัยไหมว่าเมื่อเราเลือกจุดต่างๆ บนพื้นที่ แล้วแบ่งพื้นที่นั้นออกเป็นส่วนพื้นที่ย่อยๆ อย่างไรให้แต่ละส่วนนั้นมีจุดที่ใกล้ที่สุดเป็นจุดที่เราเลือกไว้ คำตอบคือใช้ แผนภูมิวอร์โนอี (Voronoi Diagram) นั่นเอง ด้วยมารยาทการใช้ภาษาพาธอน (Python) ที่สดใส แผนภูมิวอร์โนอีไม่เพียงแค่แสดงความงดงามในทางคณิตศาสตร์ แต่ยังเป็นเครื่องมือที่มีประสิทธิภาพในการแก้ปัญหาด้านต่างๆ ทางวิทยาศาสตร์ วิศวกรรม และอีกมากมาย...
Read More →ในโลกแห่งการคำนวณที่ซับซ้อน หนึ่งในเหตุการณ์ที่นักวิทยาศาสตร์คอมพิวเตอร์และวิศวกรซอฟต์แวร์ต้องเผชิญคือการหาทางแก้ไขปัญหาการไหลของข้อมูลหรือสินค้าที่มีต้นทุนรวมน้อยที่สุด นี่คือที่มาของ Minimum Cost Flow Algorithm (MCF) โดยในบทความนี้ เราจะสำรวจความหมาย การใช้งาน ตัวอย่างโค้ดในภาษา Golang สถานการณ์การใช้งานจริง ทั้งยังวิเคราะห์ Complexity และข้อดีข้อเสียของอัลกอริทึมนี้ด้วย...
Read More →Mullers Method เป็นอัลกอริทึมที่ใช้ในการหาคำตอบของสมการทางคณิตศาสตร์ โดยเฉพาะสมการที่มีรากเป็นจำนวนเชิงซ้อน (complex roots) ของหนึ่งตัวแปร เช่น สมการพหุนาม (polynomial equations) อัลกอริทึมนี้พัฒนาโดย David E. Muller ในปี 1956 ซึ่งเป็นการปรับปรุงจากวิธีของ Newton-Raphson และ Secant Method ให้สามารถหาคำตอบที่เป็นจำนวนเชิงซ้อนได้ด้วย...
Read More →ในโลกแห่งวิทยาการคอมพิวเตอร์และการเรียนรู้ด้านคณิตศาสตร์ หนึ่งในอัลกอริทึมที่เป็นที่นิยมคือ วิธีนิวตัน (Newtons Method) หรือที่เรียกอีกชื่อหนึ่งว่า วิธีนิวตัน-ราฟสัน (Newton-Raphson Method) ซึ่งเป็นวิธีการหาค่ารากของฟังก์ชันที่เป็นไปได้ทางคณิตศาสตร์ เราจะมาทำความรู้จักกับอัลกอริทึมนี้ให้ลึกซึ้งยิ่งขึ้น พร้อมทั้งพิจารณาประโยชน์ใช้สอยในโลกจริง และหากคุณปรารถนาที่จะศึกษาการเขียนโปรแกรมด้วยการทำความเข้าใจอัลกอริทึมที่พื้นฐานแต่ทรงพลังเช่นนี้ EPT คือที่สำหรับคุณ!...
Read More →การเขียนโปรแกรมสำหรับเกมแบบเทิร์นเบสเป็นหัวข้อที่น่าสนใจและชวนท้าทายสำหรับนักพัฒนาซอฟต์แวร์ ตั้งแต่เกมกระดานคลาสสิคอย่างเชส ไปจนถึงเกมคอมพิวเตอร์ร่วมสมัย หลักการของ Minimax Algorithm เป็นจุดเริ่มต้นที่สำคัญในการเข้าใจกลยุทธ์การออกแบบ AI (ปัญญาประดิษฐ์) ที่ใช้ในการแข่งขันเชิงกลยุทธ์ระหว่างผู้เล่นสองคน...
Read More →การค้นหาคำตอบสำหรับปัญหาทางคณิตศาสตร์มีหลากหลายวิธี แต่เมื่อเราพูดถึงการหาค่ารากของสมการที่ซับซ้อน Newtons Method (หรือที่เรียกอีกชื่อหนึ่งว่า Newton-Raphson method) กลายเป็นทางเลือกที่น่าดึงดูดใจด้วยความรวดเร็วและก้าวกระโดดของมันในการหาคำตอบที่แม่นยำ...
Read More →การหาคำตอบให้กับปัญหาต่างๆ ในโลกแห่งการคำนวณ ถือเป็นเรื่องที่ท้าทายเสมอ และหนึ่งในเครื่องมือที่นักพัฒนาใช้เพื่อเข้าถึงคำตอบเหล่านั้นคือ Randomized Algorithm หรือ อัลกอริธึมแบบสุ่ม ซึ่งประกอบด้วยการใช้ความน่าจะเป็นเข้ามามีบทบาทในการคำนวณ ทำให้เราสามารถคาดหวังผลลัพธ์ที่ดีขึ้นหรือใช้เวลาที่น้อยลงเมื่อเปรียบเทียบกับอัลกอริธึมแบบดั้งเดิมที่เน้นการแก้ปัญหาอย่างตรงไปตรงมา...
Read More →การเขียนโปรแกรมเพื่อสร้างระบบปัญญาประดิษฐ์ (AI) ที่สามารถแข่งขันหรือตัดสินใจในเกมตามกฎของบอร์ดได้นั้นเป็นหัวข้อที่น่าสนใจและท้าทายสำหรับนักพัฒนาซอฟต์แวร์ในยุคนี้ หนึ่งในอัลกอริธึมที่เป็นพื้นฐานในการสร้างระบบ AI สำหรับเกมแบบผลัดกันเล่น (turn-based game) คือ Minimax Algorithm ซึ่งตัวอัลกอริธึมนี้มีพื้นฐานมาจากการคำนวณความเป็นไปได้ที่ซับซ้อนในการตัดสินใจของผู้เล่นทั้งสองฝ่ายบนเกมบอร์ด เพื่อทำนายผลลัพธ์ที่ดีที่สุดสำหรับผู้เล่น เรา และพยายามลดผลลัพธ์ที่ดีสำหรับคู่แข่ง...
Read More →ในโลกของการคำนวณทางคณิตศาสตร์ และวิทยาการคอมพิวเตอร์ มีเครื่องมือมากมายที่ถูกพัฒนาขึ้นเพื่อแก้ไขปัญหาต่างๆ หนึ่งในเครื่องมือที่ทรงพลังและมีประโยชน์อย่างมากคือ Voronoi Diagram ทำความรู้จักกับ Algorithm นี้และวิธีการใช้งานในภาษา Rust ที่จะช่วยให้คุณเข้าใจและนำไปประยุกต์ใช้ได้อย่างไร้ขีดจำกัด...
Read More →เมื่อพูดถึง High-Performance Computing (HPC) หรือการคำนวณแบบสมรรถนะสูง หลายคนอาจนึกถึงสถาบันวิจัย, องค์กรขนาดใหญ่, หรือหน่วยงานที่ทำการวิเคราะห์และแก้ไขปัญหาทางวิทยาศาสตร์และวิศวกรรมที่มีความซับซ้อน แต่ความจริงแล้ว ความสำคัญของ HPC นั้นแผ่วิสัยไปไกลมากกว่าแค่สาขาวิชาเหล่านั้น และเมื่อนำมาประยุกต์ใช้ในทางการเขียนโปรแกรม มันมีความสำคัญและประโยชน์ยิ่งกว่าที่หลายคนจะคาดคิด...
Read More →เมื่อพูดถึงการเขียนโปรแกรมที่ซับซ้อนกว่าการแค่สั่งให้คอมพิวเตอร์บวกเลขหรือวาดรูป, Natural Language Processing (NLP) หรือการประมวลผลภาษาธรรมชาตินี่แหละคือหนึ่งในเรื่องที่น่าทึ่งมากๆ ในโลกของโปรแกรมมิ่ง!...
Read More →ในยุคดิจิทัลที่ข้อมูลและเทคโนโลยีมีบทบาทสำคัญในหลายมิติของชีวิต เด็กๆ ก็จำเป็นต้องมีทักษะและความเข้าใจเบื้องต้นเกี่ยวกับการเขียนโปรแกรมมากขึ้น ไม่ใช่เพียงเพื่อการเตรียมพร้อมสู่อาชีพในอนาคต เท่านั้น แต่ยังเพื่อการพัฒนาด้านความคิดสร้างสรรค์และการแก้ปัญหาอย่างมีเหตุมีผล...
Read More →สังเกตได้ว่าความล้มเหลวในการเรียน Data Structure บ่อยครั้งมาจากพื้นฐานด้านการเขียนโปรแกรมที่ไม่แน่นพอ ในโลกของการพัฒนาซอฟต์แวร์และวิทยาการคอมพิวเตอร์ Data Structure หรือโครงสร้างข้อมูล เป็นหัวใจสำคัญที่ช่วยให้การจัดการข้อมูลเป็นไปอย่างมีประสิทธิภาพและมีระเบียบ หากไม่เข้าใจอย่างถ่องแท้ ก็อาจจะทำให้การเข้าใจคอนเซ็ปต์ซับซ้อนต่างๆในวิชาคอมพิวเตอร์ต่อๆ ไปมีความยากลำบากมากขึ้น...
Read More →หัวข้อ: Halting Problem คืออะไร และสำคัญต่อการเรียนวิชา Computational Theory อย่างไร...
Read More →ในยุคดิจิทัลที่เรากำลังก้าวผ่านนี้ เทคโนโลยีได้เข้ามามีบทบาทที่ฉาบฉวยในทุกหนทุกแห่งของชีวิตประจำวัน โดยเฉพาะอย่างยิ่งเทคโนโลยีการเขียนโปรแกรมที่ไม่เพียงแต่เป็นพื้นฐานของนวัตกรรมที่เราใช้งานกันทุกวัน แต่ยังเป็นทักษะสำคัญที่ควรถูกปลูกฝังให้กับเด็กและเยาวชนในปัจจุบัน ลองมาดูประโยชน์อันล้ำค่าของการเรียนเขียนโปรแกรมสำหรับเด็กกัน...
Read More →Computer Science เป็นสาขาวิชาที่ท้าทายและหลากหลาย ตั้งแต่หลักการพื้นฐานของการเขียนโปรแกรมไปจนถึงการเรียนรู้วิธีการแก้ปัญหาที่ซับซ้อนด้วยวิทยาการคอมพิวเตอร์ แต่ไม่ว่าจะอย่างไรก็ตาม บางวิชาในศาสตร์นี้มีชื่อเสียงว่าเป็นวิชาที่ยากและท้าทายสำหรับนักศึกษามากที่สุด ในบทความนี้ เราจะพูดถึง 5 วิชาที่ถือว่ายากที่สุดในปริญญาตรีวิทยาการคอมพิวเตอร์ พร้อมคำอธิบาย, ตัวอย่างประกอบ และเหตุผลว่าทำไมพวกเขาถึงซับซ้อน...
Read More →ในโลกของการเขียนโปรแกรมทางวิชาการ เรามักจะพบกับเหตุการณ์ที่ต้องทำการทดลองหรือคำนวณซ้ำๆ จนกระทั่งผลลัพธ์ที่ได้นั้นตอบโจทย์ข้อกำหนดหรือเงื่อนไขที่วางไว้ ในสถานการณ์เหล่านี้ do-while loop กลายเป็นเครื่องมือที่มีประโยชน์อย่างยิ่งในการควบคุมการทำซ้ำ โดยเฉพาะในภาษา Fortran ที่เป็นภาษาโปรแกรมมิ่งยอดนิยมสำหรับงานวิทยาศาสตร์และวิศวกรรม...
Read More →ยินดีต้อนรับสู่โลกของการเขียนโปรแกรมที่ไม่หยุดนิ่งกับภาษา Fortran ซึ่งเป็นหนึ่งในภาษาโปรแกรมมิ่งที่เก่าแก่และเชื่อถือได้ โดยเฉพาะอย่างยิ่งสำหรับงานที่เกี่ยวข้องกับการคำนวณทางคณิตศาสตร์ เช่น ฟังก์ชันทางคณิตศาสตร์ซึ่งเป็นส่วนสำคัญของหลายๆ แอพพลิเคชันในโลกจริง...
Read More →ในโลกของการเขียนโปรแกรม การเข้าใจและการใช้ตัวแปรประเภทต่างๆ เป็นสิ่งจำเป็นอย่างยิ่ง ลองนึกถึงเรื่องของตัวแปรทางคณิตศาสตร์ที่เราผ่านตาในห้องเรียน เช่น ( x ), ( y ), และ ( z ). ในการเขียนโปรแกรม เราก็ใช้ตัวแปรเช่นเดียวกับที่คณิตศาสตร์ใช้ เพื่อแทนค่าที่อาจจะเปลี่ยนแปลงได้ในระหว่างการทำงานของโปรแกรม ซึ่งในภาษาการเขียนโปรแกรม Julia ตัวแปรที่เกี่ยวข้องกับตัวเลขเรียกว่า ตัวแปรประเภท Numeric หรือเรียกง่ายๆ ว่าตัวแปรเลข...
Read More →หัวข้อ: สร้างศักยภาพการคำนวณด้วย Nested Loop ในภาษา Julia...
Read More →การเขียนโปรแกรมไม่ได้จำกัดเพียงแค่การสร้างแอปพลิเคชันหรือวิดีโอเกมส์เท่านั้น แต่ยังรวมถึงการคำนวณเชิงคณิตศาสตร์ในวิทยาการต่างๆอีกด้วย หนึ่งในฟังก์ชันทางคณิตศาสตร์ที่สำคัญในภาษา C++ คือ atan2 ซึ่งอยู่ในไลบรารี่ <cmath> ของภาษา C++ ทีนี้ เรามาดูกันว่า atan2 ทำงานอย่างไร และเราสามารถนำไปใช้ตรงไหนได้บ้างในโลกของการคำนวณและการสร้างโปรแกรม...
Read More →ก่อนที่เราจะไปสู่โค้ดของภาษา C++, สิ่งสำคัญคือต้องเข้าใจว่า Taylor Series คืออะไร และมันทำงานอย่างไรในการประมาณค่าของฟังก์ชัน Sine หากคุณเคยเรียนวิชาแคลคูลัส คุณอาจจำได้ว่า Taylor Series เป็นเครื่องมือทางคณิตศาสตร์ที่ใช้ในการประมาณค่าของฟังก์ชันที่ซับซ้อนและยากต่อการคำนวณด้วยวิธีปกติ ฟังก์ชัน Sine เป็นหนึ่งในนั้นที่สามารถใช้ Taylor Series ในการคำนวณได้...
Read More →การคำนวณค่าของ Factorial หรือสัญลักษณ์ ! นั้นเป็นพื้นฐานสำคัญในวงการคณิตศาสตร์และวิทยาการคอมพิวเตอร์ ไม่ว่าจะเป็นการคำนวณความน่าจะเป็น, อนุกรม, หรืออัลกอริทึมที่ซับซ้อน แต่ปัญหาที่เกิดขึ้นคือ เมื่อตัวเลขเริ่มใหญ่ขึ้น การคำนวณ factorial แบบปกตินั้นเริ่มที่จะไม่ใช่เรื่องง่ายหรือสะดวกอีกต่อไป โดยเฉพาะกับการใช้งานทางคอมพิวเตอร์ที่มีข้อจำกัดของทรัพยากร ที่นี่เอง Stirlings approximation จึงเข้ามามีบทบาท...
Read More →หัวข้อ: โปรแกรมเมอร์ไทยต้องรู้! ใช้ การประมาณค่าไซน์ด้วยซีรีส์เทย์เลอร์ ใน Golang...
Read More →ในโลกของการคำนวณทางคณิตศาสตร์ การหาค่า factorial ของจำนวนใหญ่เป็นหนึ่งในปัญหาที่ท้าทายมาก แต่ด้วยการใช้ Stirlings approximation การคำนวณค่าเหล่านั้นกลับเป็นเรื่องง่ายขึ้นอย่างไม่น่าเชื่อ ในบทความนี้ เราจะเน้นไปที่การใช้งาน Stirlings approximation เพื่อการคำนวณ factorial ในภาษา Rust ซึ่งเป็นภาษาโปรแกรมมิ่งที่มุ่งเน้นความปลอดภัยและประสิทธิภาพ...
Read More →